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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2008, 19:51   #1
Killdgedan
Пользователь
 
Регистрация: 24.12.2008
Сообщений: 10
По умолчанию Помогите подкоректировать программу

Люди, мне к завтра надо принести программу а она не доделана, надо чтобы она считала сумму положительных элементов и количество их не в строках а в столбцах!!! ПОМОГИТЕ ПОЖАЛУЙСТА !!!


Program Massiv;
Uses crt;
Var a:array[1..10,1..10] of integer;
x,y:array[1..10] of integer;
i,j,n,m,s,l:integer;
error:integer;
label l1,l2;
Begin
Clrscr;
textcolor(yellow); {заставка}
gotoxy(18,4); writeln('Вашему вниманию представляется программа,');
gotoxy(24,5); writeln('которая считает количество и сумму');
gotoxy(19,6); writeln('положительных элементов');
gotoxy(16,7); writeln('в каждом столбце введенной матрицы.');
gotoxy(35,9); writeln('Внимание!');
gotoxy(17,10); writeln('Размер матрицы должен быть не более 10*10.');
gotoxy(19,11); writeln('Элементами матрицы должны являться');
gotoxy(18,12); writeln('целые числа из интервала (-100..100)');
gotoxy(44,15); writeln('Программу выполнил');
gotoxy(44,16); writeln('студент группы ЭИЭ-112');
gotoxy(44,17); writeln('Андрюшин И.Ю.');
gotoxy(17,25); write('Нажмите любую клавишу для продолжения...');
readkey;
l1:
clrscr;
repeat
{ввод строк}
write('Введите количество строк: ');
{$i-}
readln(n);
error:=ioresult;
{$i+}
if (n>10) or (n<2) or (error<>0) then writeln('Неверно задано количество строк. Повторите ввод:');
until (n<=10) and (n>=2) and (error=0);

repeat {ввод столбцов}
write('Введите количество столбцов: ');
{$i-}
readln(m);
error:=ioresult;
{$i+}
if (m>10) or (m<2) or (error<>0) then writeln('Неверно задано количество строк. Повторите ввод:');
until (m<=10) and (m>=2) and (error=0);
{ввод элементов массива}
for i:=1 to n do
for j:=1 to m do
repeat
write('Введите A[',i,',',j,']: ');
{$i-}
readln(a[i,j]);
error:=ioresult;
{$i+}
if (a[i,j]>=100) or (a[i,j]<=-100) or (error<>0) then writeln('Неверно задан элемент. Повторите ввод:');
until (a[i,j]>-100) and (a[i,j]<100) and (error=0);
Clrscr;
Writeln(‘Матрица’);
for i:= 1 to n do begin
s:=0;
l:=0;
for j:=1 to m do begin
gotoxy(j*5-1,wherey);
write(a[i,j],' ');
if a[i,j]>0 then begin
s:=s+a[i,j];
l:=l+1;
end;
end;
x[i]:=s;
y[i]:=l;
gotoxy(m*5+8,wherey);
Writel(‘сумма’);
gotoxy(m*5+10,wherey);
write(x[i]);
gotoxy(m*5+14,wherey);
Write(‘Кол-во’);
gotoxy(m*5+16,wherey);
writeln(y[i]);
end;
gotoxy(15,25); write('Хотите ли вы ввести новую матрицу? (Y-Да, N-Нет)');
{запрос на повтор}
l2:
case readkey of
#89: goto l1;
#121: goto l1;
#78: exit;
#110: exit;
end;
goto l2;
end.
Killdgedan вне форума Ответить с цитированием
Старый 24.12.2008, 20:36   #2
pomoshnic
Форумчанин
 
Аватар для pomoshnic
 
Регистрация: 16.11.2008
Сообщений: 192
По умолчанию

Вот
Код:
Program Massiv;
Uses crt;
Var a:array[1..10,1..10] of integer;
x,y:array[1..10] of integer;
i,j,n,m,s,l:integer;
error:integer;
label l1,l2;
Begin
textbackground(1);
textcolor(14); {заставка}
Clrscr;
gotoxy(18,4); writeln('Вашему вниманию представляется программа,');
gotoxy(24,5); writeln('которая считает количество и сумму');
gotoxy(19,6); writeln('положительных элементов');
gotoxy(16,7); writeln('в каждом столбце введенной матрицы.');
gotoxy(35,9); writeln('Внимание!');
gotoxy(17,10); writeln('Размер матрицы должен быть не более 10*10.');
gotoxy(19,11); writeln('Элементами матрицы должны являться');
gotoxy(18,12); writeln('целые числа из интервала (-100..100)');
gotoxy(44,15); writeln('Программу выполнил');
gotoxy(44,16); writeln('студент группы ЭИЭ-112');
gotoxy(44,17); writeln('Андрюшин И.Ю.');
gotoxy(17,25); write('Нажмите любую клавишу для продолжения...');
readkey;
l1:
clrscr;
repeat
{ввод строк}
write('Введите количество строк: ');
readln(n);
if (n>10) or (n<2) or (error<>0) then writeln('Неверно задано количество строк. Повторите ввод:');
until (n<=10) and (n>=2) and (error=0);

repeat {ввод столбцов}
write('Введите количество столбцов: ');
{$i-}
readln(m);
{$i+}
if (m>10) or (m<2) or (error<>0) then writeln('Неверно задано количество строк. Повторите ввод:');
until (m<=10) and (m>=2) and (error=0);
{ввод элементов массива}
for i:=1 to n do
for j:=1 to m do
repeat
write('Введите A[',i,',',j,']: ');
{$i-}
readln(a[i,j]);
{$i+}
if (a[i,j]>=100) or (a[i,j]<=-100) or (error<>0) then writeln('Неверно задан элемент. Повторите ввод:');
until (a[i,j]>-100) and (a[i,j]<100) and (error=0);
Clrscr;
Writeln('Матрица');
for i:= 1 to n do begin
s:=0;
l:=0;
for j:=1 to m do begin
gotoxy(j*5-1,wherey);
write(a[i,j],' ');
if a[i,j]>0 then begin
s:=s+a[i,j];
l:=l+1;
end;
end;
x[i]:=s;
y[i]:=l;
gotoxy(m*5+8,wherey);
Writeln('сумма');
gotoxy(m*5+10,wherey);
write(x[i]);
gotoxy(m*5+14,wherey);
Write('Кол-во');
gotoxy(m*5+16,wherey);
writeln(y[i]);
end;
gotoxy(15,25); write('Хотите ли вы ввести новую матрицу? (Y-Да, N-Нет)');
{запрос на повтор}
l2:
case readkey of
#89: goto l1;
#121: goto l1;
#78: exit;
#110: exit;
end;
goto l2;
end.
pomoshnic вне форума Ответить с цитированием
Старый 24.12.2008, 20:51   #3
Killdgedan
Пользователь
 
Регистрация: 24.12.2008
Сообщений: 10
По умолчанию

К сожалению ничего не изменилось !!! ПОМАГИТЕ !!!!!
Killdgedan вне форума Ответить с цитированием
Старый 24.12.2008, 21:21   #4
pomoshnic
Форумчанин
 
Аватар для pomoshnic
 
Регистрация: 16.11.2008
Сообщений: 192
По умолчанию

А у меня работает. Попробуй мой файл.
Вложения
Тип файла: rar massiv.rar (1.1 Кб, 11 просмотров)
pomoshnic вне форума Ответить с цитированием
Старый 24.12.2008, 21:25   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

pomoshnic Нужно, чтобы считалась сумма и количество элементов в столбцах. В вашем варианте считается в строках.
Для проверки вбил:
строк: 2
столбцов: 4
1 2 3 4
1 2 3 4
Итог:
Сумма 10
Сумма 10
=========
Вообще стоит заметить, что переделывать тут довольно муторно, т.к. нужно изначально пускать цикл по столбцам и в нем запустить цикл по строкам.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 24.12.2008 в 21:27.
Sazary вне форума Ответить с цитированием
Старый 24.12.2008, 21:37   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Вот.
Перекодировал штирлицем, поэтому русские надписи придется подправить.
Код:
Program Massiv;
Uses crt;
Var a:array[1..10,1..10] of integer;
x,y:array[1..10] of integer;
i,j,n,m,s,l:integer;
error:integer;
label l1,l2;
Begin
textbackground(1);
textcolor(14); {з ст вк }
Clrscr;
gotoxy(18,4); writeln('В шему вним нию предст вляется прогр мм ,');
gotoxy(24,5); writeln('котор я счит ет количество и сумму');
gotoxy(19,6); writeln('положительных элементов');
gotoxy(16,7); writeln('в к ждом столбце введенной м трицы.');
gotoxy(35,9); writeln('Вним ние!');
gotoxy(17,10); writeln('Р змер м трицы должен быть не более 10*10.');
gotoxy(19,11); writeln('Элемент ми м трицы должны являться');
gotoxy(18,12); writeln('целые числ  из интерв л  (-100..100)');
gotoxy(44,15); writeln('Прогр мму выполнил');
gotoxy(44,16); writeln('студент группы ЭИЭ-112');
gotoxy(44,17); writeln('Андрюшин И.Ю.');
gotoxy(17,25); write('Н жмите любую кл вишу для продолжения...');
readkey;
l1:
clrscr;
repeat
{ввод строк}
write('Введите количество строк: ');
readln(n);
if (n>10) or (n<2) or (error<>0) then writeln('Неверно з д но количество строк. Повторите ввод:');
until (n<=10) and (n>=2) and (error=0);

repeat {ввод столбцов}
write('Введите количество столбцов: ');
{$i-}
readln(m);
{$i+}
if (m>10) or (m<2) or (error<>0) then writeln('Неверно з д но количество строк. Повторите ввод:');
until (m<=10) and (m>=2) and (error=0);
{ввод элементов м ссив }
for i:=1 to n do
for j:=1 to m do
repeat
write('Введите A[',i,',',j,']: ');
{$i-}
readln(a[i,j]);
{$i+}
if (a[i,j]>=100) or (a[i,j]<=-100) or (error<>0) then writeln('Неверно з д н элемент. Повторите ввод:');
until (a[i,j]>-100) and (a[i,j]<100) and (error=0);
Clrscr;
Writeln('М триц ');


for j:=1 to m do
 begin
 s:=0;
 l:=0;
 for i:=1 to n do
   begin
   gotoxy(i*5-1,wherey);
   write(a[i,j],' ');
   if a[i,j]>0 then begin
               s:=s+a[i,j];
               l:=l+1;
               end;
   end;
 x[j]:=s;
 y[j]:=l;
 gotoxy(n*5+8,wherey);
 writeln('сумм ');
 gotoxy(n*5+10,wherey);
 write(x[j]);
 gotoxy(n*5+14,wherey);
 write('Кол-во');
 gotoxy(m*5+20,wherey);
 writeln(y[j]);
 end;



{for i:= 1 to n do begin
 s:=0;
 l:=0;
  for j:=1 to m do begin
  gotoxy(j*5-1,wherey);
  write(a[i,j],' ');
  if a[i,j]>0 then begin
   s:=s+a[j,i];
   l:=l+1;
   end;
  end;
  x[i]:=s;
  y[i]:=l;
  gotoxy(m*5+8,wherey);
  Writeln('сумм ');
  gotoxy(m*5+10,wherey);
  write(x[i]);
  gotoxy(m*5+14,wherey);
  Write('Кол-во');
  gotoxy(m*5+16,wherey);
  writeln(y[i]);

 end;  }


gotoxy(15,25); write('Хотите ли вы ввести новую м трицу? (Y-Д , N-Нет)');
{з прос н  повтор}
l2:
case readkey of
#89: goto l1;
#121: goto l1;
#78: exit;
#110: exit;
end;
goto l2;
end.
upd Пардон, решение не совсем полное. Считает и выводит сумму, вроде, правильно, но сама матрица выводится в транспонированном виде.
Если исправлю - напишу
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 24.12.2008 в 21:55.
Sazary вне форума Ответить с цитированием
Старый 24.12.2008, 22:04   #7
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Все. Рабочий вариант. Пришлось добавить цикл.
Код:
Program Massiv;
Uses crt;
Var a:array[1..10,1..10] of integer;
x,y:array[1..10] of integer;
i,j,n,m,s,l:integer;
error:integer;
label l1,l2;
Begin
textbackground(1);
textcolor(14); {заставка}
Clrscr;
gotoxy(18,4); writeln('Вашему вниманию представляется программа,');
gotoxy(24,5); writeln('которая считает количество и сумму');
gotoxy(19,6); writeln('положительных элементов');
gotoxy(16,7); writeln('в каждом столбце введенной матрицы.');
gotoxy(35,9); writeln('Внимание!');
gotoxy(17,10); writeln('Размер матрицы должен быть не более 10*10.');
gotoxy(19,11); writeln('Элементами матрицы должны являться');
gotoxy(18,12); writeln('целые числа из интервала (-100..100)');
gotoxy(44,15); writeln('Программу выполнил');
gotoxy(44,16); writeln('студент группы ЭИЭ-112');
gotoxy(44,17); writeln('Андрюшин И.Ю.');
gotoxy(17,25); write('Нажмите любую клавишу для продолжения...');
readkey;
l1:
clrscr;
repeat
{ввод строк}
write('Введите количество строк: ');
readln(n);
if (n>10) or (n<2) or (error<>0) then writeln('Неверно задано количество строк. Повторите ввод:');
until (n<=10) and (n>=2) and (error=0);

repeat {ввод столбцов}
write('Введите количество столбцов: ');
{$i-}
readln(m);
{$i+}
if (m>10) or (m<2) or (error<>0) then writeln('Неверно задано количество строк. Повторите ввод:');
until (m<=10) and (m>=2) and (error=0);
{ввод элементов массива}
for i:=1 to n do
for j:=1 to m do
repeat
write('Введите A[',i,',',j,']: ');
{$i-}
readln(a[i,j]);
{$i+}
if (a[i,j]>=100) or (a[i,j]<=-100) or (error<>0) then writeln('Неверно задан элемент. Повторите ввод:');
until (a[i,j]>-100) and (a[i,j]<100) and (error=0);
Clrscr;
Writeln('Матрица');


for i:=1 to n do
 begin
 for j:=1 to m do
  begin
  gotoxy(j*5-1,wherey);
  write(a[i,j],' ');
  end;
 writeln;
 end;

gotoxy(wherex,1);

for j:=1 to m do
 begin
 s:=0;
 l:=0;
 for i:=1 to n do
   begin
   if a[i,j]>0 then begin
               s:=s+a[i,j];
               l:=l+1;
               end;
   end;
 x[j]:=s;
 y[j]:=l;
 gotoxy(m*5+8,wherey);
 writeln('сумма');
 gotoxy(m*5+10,wherey);
 write(x[j]);
 gotoxy(m*5+14,wherey);
 write('Кол-во');
 gotoxy(m*5+23,wherey);
 writeln(y[j]);
 end;

gotoxy(15,25); write('Хотите ли вы ввести новую матрицу? (Y-Да, N-Нет)');
{запрос на повтор}
l2:
case readkey of
#89: goto l1;
#121: goto l1;
#78: exit;
#110: exit;
end;
goto l2;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 24.12.2008, 22:10   #8
Killdgedan
Пользователь
 
Регистрация: 24.12.2008
Сообщений: 10
По умолчанию

Огромное спасибо !!!!
Killdgedan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите написать программу Panda Помощь студентам 4 24.05.2009 06:14
Помогите дописать программу cL1zMa Паскаль, Turbo Pascal, PascalABC.NET 2 06.06.2008 14:40
HELP! Нужно подкоректировать прогу на СИ. NEWLOGIN Помощь студентам 3 10.05.2008 18:11
помогите дописать программу slm Работа с сетью в Delphi 3 09.05.2008 18:39
помогите подкоректировать задачи ,а то не правильно выдают ответы!! chelsi Общие вопросы Delphi 3 25.04.2008 10:35