Нужен допуск на экзамен. Помогите задачу решить
|
|
666 | Дата: Суббота, 18.12.2010, 21:03 | Сообщение # 1 |
Новичок
Группа: Пользователи
Сообщений: 5
Статус: Offline
| A(N,M) Вычислить и запомнить суммы и числа положительных элементов каждой строки матрицы. Результаты отпечатать в виде двух столбцов. N<20 M<15 вот сам текст задачи. Задание 2. Выполнить программу при n=4, m=4, приняв следующие значения исходной матрицы A: 1.5 2.0 -1.0 2 3.3 4.4 5.5 6.6 -2 3 4 5 0.0 -2 7 -4 В результате выполнения программы выводится матрица в виде 1.5 2.0 3.3 4.4 5.5 6.6 <пустая строка> 0.0 Правильность выполнения программы легко установить сравнением исходной матрицы A с результатом печати матрицы B. В тестовом наборе данных рассмотрены следующие случаи: 1) в строке есть отрицательный элемент; 2) в строке таковых не наблюдается; 3) первый элемент строки – отрицательный; Вот это еще дано,но хз нужно или нет это. Добавлено (18.12.2010, 21:03) --------------------------------------------- Code PROGRAM qwerty; USES Crt; CONST n=15; m=20; VAR a:array[1..n,1..m] of integer; rows:array[1..m]of integer; cols:array[1..n]of integer; i,j:integer; BEGIN clrscr; for i:=1 to n do for j:=1 to m do begin write('a[',i,',',j,']='); readln(a[i,j]); clrscr; end; for i:=1 to n do for j:=1 to m do begin rows[i]:=rows[i]+a[i,j]; cols[j]:=cols[j]+a[i,j]; end; {rows - суммы по строчкам; cols - по столбцам} repeat read until keypressed; END. вот что в голову пришло,помогите разрулить
Сообщение отредактировал 666 - Воскресенье, 19.12.2010, 01:16 |
|
| |
Seqular | Дата: Воскресенье, 19.12.2010, 12:06 | Сообщение # 2 |
Хранитель
Группа: Администраторы
Сообщений: 859
Статус: Offline
| Че-то не так, мне кажется. Матрица: Quote 1.5 2.0 -1.0 2 3.3 4.4 5.5 6.6 -2 3 4 5 0.0 -2 7 -4 должна выглядеть так: Quote 1.5 2.0 2 3.3 4.4 5.5 6.6 3 4 5 0.0 7 Верно? Если да, то я правильно понял условие задачи. P.S. как быть с 0? Он не положительный считается?
Поддерживаю также проект сообщество молодых сисадминов
|
|
| |
Seqular | Дата: Воскресенье, 19.12.2010, 18:59 | Сообщение # 3 |
Хранитель
Группа: Администраторы
Сообщений: 859
Статус: Offline
| Code Program to666; Uses CRT; Const M = 4; N = 4; Var a: Array[1..M,1..N] of Real; s: Real; c: Byte; i,j: Byte; Begin ClrScr; {Zapolnenie matricy} For i := 1 to N do Begin For j := 1 to M do Begin Write(' A[',i,',',j,'] = '); Read(a[i,j]); End; Writeln; End;
{Print} For i := 1 to N do Begin For j := 1 to M do Write(a[i,j]:5:1); Writeln; End; {Calc} Writeln; For i := 1 to N do Begin c := 0; s := 0; For j := 1 to M do If (a[i,j] > 0) then Begin s := s + a[i,j]; Inc(c); End; Writeln('Row ',i,': SUMM: ',s:0:1,' COUNT: ',c); End; ReadKey; End. Ну тут я немного приукрасил! Вам же по условию нужно выдать 2 столбца: выводите тока s:0:1 и c
Поддерживаю также проект сообщество молодых сисадминов
|
|
| |
666 | Дата: Воскресенье, 19.12.2010, 19:45 | Сообщение # 4 |
Новичок
Группа: Пользователи
Сообщений: 5
Статус: Offline
| спасибо за помощь в идеале прога выглядит так Code VAR A:Array[1..20,1..15] of Integer; Sum,i,j,D:Integer; N,M,NMpos:Byte; BEGIN Write('Number of rows (<20)= '); ReadLn(N); Write('Number of columns (<15)= '); ReadLn(M); Randomize; For i:=1 to N do For j:=1 to M do begin D:=Random(100); A[i,j]:=D-50; end; WriteLn('Initial matrix:'); For i:=1 to N do begin For j:=1 to M do Write(A[i,j]:5); WriteLn; end; WriteLn('Press "Enter" to continue'); ReadLn; WriteLn('Result of calculation:'); For i:=1 to N do begin Sum:=0; NMpos:=0; For j:=1 to M do begin Sum:=Sum+A[i,j]; If A[i,j]>0 then Inc(NMpos); end; WriteLn(Sum:7,NMpos:4); end; WriteLn; ReadLn; END.
|
|
| |
Seqular | Дата: Воскресенье, 19.12.2010, 19:50 | Сообщение # 5 |
Хранитель
Группа: Администраторы
Сообщений: 859
Статус: Offline
| Ага.. суммы всех элементов строки считаем, или тока положительных? А то я не совсем понял условие задачи. Из вашего примера, видимо, всех
Поддерживаю также проект сообщество молодых сисадминов
|
|
| |
666 | Дата: Воскресенье, 19.12.2010, 22:40 | Сообщение # 6 |
Новичок
Группа: Пользователи
Сообщений: 5
Статус: Offline
| а что надо поменять в моём примере что бы считалась сумма только положительных элементов?
|
|
| |
Seqular | Дата: Воскресенье, 19.12.2010, 22:43 | Сообщение # 7 |
Хранитель
Группа: Администраторы
Сообщений: 859
Статус: Offline
| Ну вы же на основе моего кода делали? У меня там как раз суммы положительных считает. Т.е. подсчет суммы входит внутрь блока if then
Поддерживаю также проект сообщество молодых сисадминов
|
|
| |
666 | Дата: Воскресенье, 19.12.2010, 22:47 | Сообщение # 8 |
Новичок
Группа: Пользователи
Сообщений: 5
Статус: Offline
| не не не. это мне сделал мой знакомый, я ваще не шарю в паскале, сейчас не магу с ним связаца по этому у вас спрашиваю.
|
|
| |
Seqular | Дата: Воскресенье, 19.12.2010, 23:10 | Сообщение # 9 |
Хранитель
Группа: Администраторы
Сообщений: 859
Статус: Offline
| =)) Забавно.. А выглядит как копия моего исходника. Некоторые элементы просто переименованы. Введено случайное заполнение матрицы вместо ручного. А так - копия! )) P.S. и я вам уже ответил
Поддерживаю также проект сообщество молодых сисадминов
|
|
| |
666 | Дата: Понедельник, 20.12.2010, 00:00 | Сообщение # 10 |
Новичок
Группа: Пользователи
Сообщений: 5
Статус: Offline
| ну то есть надоCode If (a[i,j] > 0) then Begin написать?
|
|
| |
Seqular | Дата: Понедельник, 20.12.2010, 07:49 | Сообщение # 11 |
Хранитель
Группа: Администраторы
Сообщений: 859
Статус: Offline
| Ага.. и поместить подсчет суммы внутрь бегин-енд
Поддерживаю также проект сообщество молодых сисадминов
|
|
| |