Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2008, 22:49   #1
vlad1991
Пользователь
 
Регистрация: 10.12.2007
Сообщений: 69
Восклицание Задачи на подпрограммы!

Задача 1.
Задача на процедуру:дана квадратная матрица действительных чисел размером m(m<=10).Преобразовать матрицу так, чтобы на главной диагонали стояли максимальные элементы соответсвенного столбца.

Задача 2.
Задача на функцию:
В заданной матрице x размером n*m (n,m <=10) найти количество элементов в каждом столбце,больших среднего арифмитического элементов данного столбца.

вот мое решение, но мне преподователь сказала не правильно!Если не сложно подскажите в чем ошибка???

1 задача:
program lab51;
type
matr=array[1..10,1..10] of integer;
var
k,i,j,n,m:integer;
x,y:matr;
procedure INMATR(var x:matr;n,m:integer);
var
i,j:integer;
begin
for i:=1 to n do
for j:=1 to m do
begin
writeln('vvedite x[i,j]');
readln(x[i,j]);
end;
end;
procedure OUTMATR(x:matr;n,m:integer);
var
i,j:integer;
begin
for i:=1 to n do
begin
for j:=1 to m do
write(x[i,j]:3);
writeln;
end;
end;
procedure MAX(x:matr;var y:matr;n,m:integer);
var
i,j,max:integer;
begin
k:=1;
max:=x[1,j];
for j:=1 to m do
begin
for i:=2 to n do
if x[i,j]>max then
max:=x[i,j];
y[k,k]:=max;
k:=k+1;
end;
end;
begin
writeln('vvedite n,m');
readln(n,m);
INMATR(x,n,m);
writeln('ishodnii massiv');
OUTMATR(x,n,m);
MAX(x,y,n,m);
writeln('poluchenii massiv');
outmatr(y,n,m);
readln
end.


2 задача:
program lab52;
uses crt;
type
matr=array[1..10,1..10] of integer;
var
n,m,j:integer;
x:matr;
procedure INMATR(var x:matr;n,m:integer);
var
i,j:integer;
begin
for i:=1 to n do
for j:=1 to m do
begin
writeln('vvedite x[i,j]');
readln(x[i,j]);
end;
end;
procedure OUTMATR(x:matr;n,m:integer);
var
i,j:integer;
begin
for i:=1 to n do
begin
for j:=1 to m do
write(x[i,j]:3);
writeln;
end;
end;
function KOLICH(x:matr;j,n:integer):integer;
var
k,i,l:integer;
S,SRED:real;
begin
S:=0;
i:=1;
repeat
S:=S+x[i,j];
i:=i+1;
until i>n;
SRED:=S/n;
k:=0;
for i:=1 to n do
if x[i,j]>SRED then
k:=k+1;
KOLICH:=k;
end;
begin
writeln('vvedite n,m');
readln(n,m);
INMATR(x,n,m);
writeln('ishodnii massiv');
OUTMATR(x,n,m);
writeln('poluchenii rezultat');
for j:=1 to m do
writeln('k=',KOLICH(x,j,n));
readln
end.

Последний раз редактировалось vlad1991; 13.12.2008 в 23:19.
vlad1991 вне форума Ответить с цитированием
Старый 13.12.2008, 23:01   #2
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Код не помешало бы оформить. Я например, много буКаф в один столбик рассматривать не стану...
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Старый 13.12.2008, 23:02   #3
vlad1991
Пользователь
 
Регистрация: 10.12.2007
Сообщений: 69
По умолчанию

Цитата:
Сообщение от Dj_smart Посмотреть сообщение
Код не помешало бы оформить. Я например, много буКаф в один столбик рассматривать не стану...
там же все ясно!
vlad1991 вне форума Ответить с цитированием
Старый 13.12.2008, 23:07   #4
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Цитата:
там же все ясно!
Возможно - но я привык как программист смотреть на многоуровневой 2D код - тогда понятно кто кого вызывает и какому begin'u принадлежит какой end
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Старый 13.12.2008, 23:15   #5
vlad1991
Пользователь
 
Регистрация: 10.12.2007
Сообщений: 69
По умолчанию

Цитата:
Сообщение от Dj_smart Посмотреть сообщение
Возможно - но я привык как программист смотреть на многоуровневой 2D код - тогда понятно кто кого вызывает и какому begin'u принадлежит какой end
Я попробую так сделать, но я не если четно даж не знаю как=)
vlad1991 вне форума Ответить с цитированием
Старый 13.12.2008, 23:19   #6
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Это уже полезло в оффтоп, я думаю есть тема, а которой рассказываеться как структурировать код. Ну и дядя гугл еще жив.
Вот пример:
Код:
program GgG
begin
  if (blah-blah-blah) then begin          // если опустить взгляд под if то видно, какой end закывает этот if
    while (GgG) do begin    
      something(Hz);
    end;
  end; // <- вот этот
end.
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Старый 15.12.2008, 21:34   #7
vlad1991
Пользователь
 
Регистрация: 10.12.2007
Сообщений: 69
По умолчанию

Посмотрите пожалуйста задачи!!!Я на вас надеюсь!!!!!!Скоро сессия=(((
я же сделал, просто надо проверить в чем ошибки=(
vlad1991 вне форума Ответить с цитированием
Старый 16.12.2008, 20:12   #8
vlad1991
Пользователь
 
Регистрация: 10.12.2007
Сообщений: 69
По умолчанию

Вот еще одну прогу сделал, она работает все нормуль, но посмотрите пожалуйста правильно ли я выполнил прогу, т.е.правильно я понял условие!
Буду Вам очень благодарен!

Имеется массив записей, содержащий перечень имеющихся в продаже товаров.Определить общую стоимость приобретенных товаров , если известно , сколько единиц каких видов товаров продано.

program lab61;
type tov = record
m:string[10];
j:integer;
b:integer;
end;
mas=array[1..10] of tov;
var
a:mas;
p,S,n,i:integer;
procedure INMAS(var x:mas;n:integer);
var
i:integer;
begin
for i:=1 to n do
with x[i] do
begin
writeln('Vvedite tovar');
readln(m);
writeln('vvedite cenu');
readln(j);
writeln('vvedite kolich priobretenih tov');
readln(b);
end;
end;
procedure OUTMAS(x:mas;n:integer);
var
i:integer;
begin
writeln('ЙННННННННННЛНННННННННЛНННН НННННН»');
writeln('є в®ў*а є жҐ** єЄ®«ЁзҐбвў®є');
writeln('МННННННННННОНННННННННОНННН НННННН№');
for i:=1 to n do
writeln('є',x[i].m:10,'є',x[i].j:9,'є',x[i].b:10);
writeln('ИННННННННННКНННННННННКНННН ННННННј');
end;
function SUMMA(S:integer;x:mas;i:integer):in teger;
begin
SUMMA:=x[i].b*x[i].j;
end;
begin
writeln('ўўҐ¤ЁвҐ Є®«ЁзҐбвў® в®ў*а®ў');
readln(n);
INMAS(a,n);
OUTMAS(a,n);
S:=0;
for i:=1 to n do
begin
p:=SUMMA(S,a,i);
S:=S+p;
end;
writeln('obchay stoimost =',S);
readln
end.
vlad1991 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вопрос по basic (подпрограммы) Sad_SmiliK Помощь студентам 1 08.11.2008 22:38
Подпрограммы и обработка матриц Pravednik Помощь студентам 3 20.01.2008 14:41
Задачи Настена Помощь студентам 1 18.12.2007 06:45
"Текстовые файлы" и "Графика и подпрограммы" Nata!!!@ Помощь студентам 5 05.12.2007 18:17