Вторник, 07.01.2025
Pascal 4 All
[ · Новые сообщения · Участники · Правила форума · Поиск · RSS ]

 

  • Страница 1 из 1
  • 1
Модератор форума: Seqular, Pavel  

Нужен допуск на экзамен. Помогите задачу решить
666Дата: Суббота, 18.12.2010, 21:03 | Сообщение # 1
Новичок
Группа: Пользователи
Сообщений: 5
Репутация: 0
Замечания: 0%
Статус: 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
Репутация: 35
Статус: 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
Репутация: 35
Статус: 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
Репутация: 0
Замечания: 0%
Статус: 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
Репутация: 35
Статус: Offline
Ага.. суммы всех элементов строки считаем, или тока положительных? А то я не совсем понял условие задачи. Из вашего примера, видимо, всех

Поддерживаю также проект сообщество молодых сисадминов
 
666Дата: Воскресенье, 19.12.2010, 22:40 | Сообщение # 6
Новичок
Группа: Пользователи
Сообщений: 5
Репутация: 0
Замечания: 0%
Статус: Offline
а что надо поменять в моём примере что бы считалась сумма только положительных элементов?
 
SeqularДата: Воскресенье, 19.12.2010, 22:43 | Сообщение # 7
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
Ну вы же на основе моего кода делали? У меня там как раз суммы положительных считает. Т.е. подсчет суммы входит внутрь блока if then

Поддерживаю также проект сообщество молодых сисадминов
 
666Дата: Воскресенье, 19.12.2010, 22:47 | Сообщение # 8
Новичок
Группа: Пользователи
Сообщений: 5
Репутация: 0
Замечания: 0%
Статус: Offline
не не не. это мне сделал мой знакомый, я ваще не шарю в паскале, сейчас не магу с ним связаца по этому у вас спрашиваю.
 
SeqularДата: Воскресенье, 19.12.2010, 23:10 | Сообщение # 9
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
=)) Забавно.. А выглядит как копия моего исходника. Некоторые элементы просто переименованы. Введено случайное заполнение матрицы вместо ручного. А так - копия! ))
P.S. и я вам уже ответил


Поддерживаю также проект сообщество молодых сисадминов
 
666Дата: Понедельник, 20.12.2010, 00:00 | Сообщение # 10
Новичок
Группа: Пользователи
Сообщений: 5
Репутация: 0
Замечания: 0%
Статус: Offline
ну то есть надо
Code
If (a[i,j] > 0) then  
              Begin
написать?
 
SeqularДата: Понедельник, 20.12.2010, 07:49 | Сообщение # 11
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
Ага.. и поместить подсчет суммы внутрь бегин-енд

Поддерживаю также проект сообщество молодых сисадминов
 
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2025
Используются технологии uCoz
javascript:;" rel="nofollow" onclick="loginPopupForm(); return false;