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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2009, 14:05   #1
podrom
 
Регистрация: 07.06.2009
Сообщений: 7
По умолчанию Задачи в паскале.

нужна помощь в написании двух программ,я с эти языком програмирования на ВЫ и ничего не получается...
1)написать прогу,которая вычисляет среднее арифметическое элементов двумерного массива больших 20.
2)написать прогу которая меняет строку с минимальным элементом двумерного массива(5*4) на строку с максимальным(вывести массив и сходный и полученный в виде матрицы)
podrom вне форума Ответить с цитированием
Старый 11.06.2009, 14:20   #2
aslanbek999
Пользователь
 
Регистрация: 02.06.2009
Сообщений: 37
По умолчанию

Код:
Function Sred(A:matrix;n,m:integer):real;
. var S,Sr:real;
.       i,j,k:integer;
begin
. S:=0;
. For i:=1 to n do
.  For j:=1 to m do
.   if A[i,j]>20 then
.    begin
.     S:=S+A[i,j];
.     k:=k+1;
.    end;
. Sr:=S/k;
. Sred:=Sr;
end;
From Stilet: Что код оформить в тег не судьба?
Windows квантумом шурша пишет свопы неспеша...
aslanbek999 вне форума Ответить с цитированием
Старый 11.06.2009, 14:21   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
написать прогу,которая вычисляет среднее арифметическое элементов двумерного массива больших 20.
Эту напишу, остальный в методичке:
Код:
var a:array[1..10,1..10] of byte; q,w:byte;cnt:integer;sa:real;
begin sa:=0;cnt:=0;
 for q:=1 to 10 do begin
  for w:=1 to 10 do begin
   readln(a[q,w]);
    if a[q,w]>20 then begin sa:=sa+a[q,w]; inc(cnt); end;
  end;
 end;
 sa:=sa/cnt;
 write(sa);readln;
end.
p.s. не проверял.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.06.2009, 14:25   #4
podrom
 
Регистрация: 07.06.2009
Сообщений: 7
По умолчанию

Спасибо,отлично первая есть,осталось побороться со второй!
podrom вне форума Ответить с цитированием
Старый 11.06.2009, 14:33   #5
aslanbek999
Пользователь
 
Регистрация: 02.06.2009
Сообщений: 37
По умолчанию

Код:
max:=Matr[1,1];
  for i:=1 to 5 do
    for j:=1 to 4 do
      if Max<Matr[i,j] then
       begin
        max := M[i,j];
        imax:=i;
       end;
Вот тебе тело для нахождения максимального.

Код:
  min:=Matr[1,1];
  for i:=1 to 5 do
    for j:=1 to 4 do
      if min>Matr[i,j] then
       begin
        min:= M[i,j];
        imin:=i;
       end;
Это для минимального

потом элементы с номером строки imax меняешь на элементы с номером imin. Это хоть сам оформить сможешь?
Windows квантумом шурша пишет свопы неспеша...
aslanbek999 вне форума Ответить с цитированием
Старый 11.06.2009, 14:46   #6
podrom
 
Регистрация: 07.06.2009
Сообщений: 7
По умолчанию

а можешь тож написать,потому что я не знаю и не понимаю как это делать...я в паскале 0
podrom вне форума Ответить с цитированием
Старый 11.06.2009, 15:02   #7
aslanbek999
Пользователь
 
Регистрация: 02.06.2009
Сообщений: 37
По умолчанию

Код:
Program asd;
Var   matr: array [1..5, 1..4] of real;
        i,j,imax,imin : integer;
        F1,F2:text;
        max,min:real;
begin
 assign(F1,'isdan.pas');
 assign(F2,'vdan.pas');
 reset(f1);
 rewrite(f2);
  for i:=1 to 5 do
   begin
    for j:=1 to 4 do
     read(f1,Matr[i,j]);
    readln(f1);
   end;
 max:=Matr[1,1];
  for i:=1 to 5 do
    for j:=1 to 4 do
      if Max<Matr[i,j] then
       begin
        max := M[i,j];
        imax:=i;
       end;
 min:=Matr[1,1];
  for i:=1 to 5 do
    for j:=1 to 4 do
      if min>Matr[i,j] then
       begin
        min:= M[i,j];
        imin:=i;
       end;
 for j:=1 to 4 do
   Matr[imin,j]:=Matr[imax,j];
 For i:=1 to 5 do
  begin
   for j:=1 to 4 do 
     write(f2,matr[i,j]:3);
   writeln(f2);
  end;
 close(f1);
 close(f2);
end.

Что-то вроде этого. Не проверял.
Windows квантумом шурша пишет свопы неспеша...
aslanbek999 вне форума Ответить с цитированием
Старый 11.06.2009, 15:12   #8
podrom
 
Регистрация: 07.06.2009
Сообщений: 7
По умолчанию

Спасибо огромное!!!ща буду разбираться!!
podrom вне форума Ответить с цитированием
Старый 11.06.2009, 15:31   #9
aslanbek999
Пользователь
 
Регистрация: 02.06.2009
Сообщений: 37
По умолчанию

Пожалуйста.
Windows квантумом шурша пишет свопы неспеша...
aslanbek999 вне форума Ответить с цитированием
Старый 11.06.2009, 18:40   #10
podrom
 
Регистрация: 07.06.2009
Сообщений: 7
По умолчанию

есть одна неувязочка,ребят!вот прога,я привел ее в надлежащий вид,все по вашим указаниям,но там есть проблема.Она на стрку с мин элементом просто накладывает строку с мах элементом,то есть строка мах так и отстается,а она ведь должна менятся на строку мин.Там по ходу нужна какая то третья переменная,посмотрите,может сможете помочь.


program exe;
uses crt;
var a:array[1..5,1..4] of integer;
imin,i,j,imax:integer;
max,min:real;
begin
clrscr;
writeln; writeln; writeln; writeln; writeln; writeln;
writeln('ishodnij massiv');
randomize;
for i:=1 to 5 do begin
for j:=1 to 4 do
a[i,j]:=random(50);
end;
for i:=1 to 5 do begin
for j:=1 to 4 do
write(a[i,j]:5);
writeln;
end;

writeln;
max:=a[1,1];
for i:=1 to 5 do
for j:=1 to 4 do
if max<a[i,j] then
begin
max:=a[i,j];
imax:=i;
end;
min:=a[1,1];
for i:=1 to 5 do
for j:=1 to 4 do
if min>a[i,j] then
begin
min:=a[i,j];
imin:=i;
end;
for j:=1 to 4 do
a[imin,j]:=a[imax,j];

writeln;
writeln('rezyltat zameni ');

for i:=1 to 5 do begin
for j:=1 to 4 do
write(a[i,j]:5);
writeln;
end;

readkey;
end.
podrom вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачи в Паскале. fairy_cookies Помощь студентам 3 02.03.2009 20:58
привет всем! помогите пожалуйста решить две задачи на паскале. я в паскале полный ноль. Пищенок Саша Паскаль, Turbo Pascal, PascalABC.NET 5 20.01.2009 13:46
Задачи в Паскале vitekbest Помощь студентам 1 06.04.2008 19:35