PascalABCNET. Помогите с прогой по матрице срочно. У нас есть три столбца : стоимость,...

0 голосов
83 просмотров

PascalABCNET. Помогите с прогой по матрице срочно. У нас есть три столбца : стоимость, сорт, количество
В столбце "сорт" всегда вводятся числа: 00 01 10 11
В стоимости и количестве любые.
Нужно написать прогу которая выводит общую стоимость товаров по каждому сорту.
Вводим :
17 01 2
3 00 5
7 01 4

Вывод:
00 - 15
01 - 34+28=62


Информатика (108 баллов) | 83 просмотров
0

Так я и есть школота, и в программисты не стремлюсь как то

0

Хорошо, помогите пожалуйста написать мне программу

0

В матрице хранятся данные, или они просто вводятся в таком формате?

0

И откуда брать эти данные: с клавиатуры вводить или рандомно задавать?

0

С клавиатуры вводить

0

На первый вопрос ответите?

0

Просто вводятся

Дан 1 ответ
0 голосов
Правильный ответ

Const
   N = 7; // количество наименований товаров
Var
   A:array[1..N,1..3] of integer;
   i,k,S:integer;
Begin
For i:= 1 to N do
    Read(A[i,1],A[i,2],A[i,3]);
k:=0;
For i:= N downto 1 do
    if A[i,2] = 0 then k:=i;
if k > 0 then
   Begin
   Write('00 - ',A[k,1]*A[k,3]);
   S:=0;
   For i:= k+1 to N do
       if A[i,2] = 0 then
          Begin
          Write('+',A[i,1]*A[i,3]);
          S:=S+A[i,1]*A[i,3];
          End;
   if S <> 0 then Write('=',S+A[k,1]*A[k,3]);
   WriteLn;
   End;
k:=0;
For i:= N downto 1 do
    if A[i,2] = 1 then k:=i;
if k > 0 then
   Begin
   Write('01 - ',A[k,1]*A[k,3]);
   S:=0;
   For i:= k+1 to N do
       if A[i,2] = 1 then
          Begin
          Write('+',A[i,1]*A[i,3]);
          S:=S+A[i,1]*A[i,3];
          End;
   if S <> 0 then Write('=',S+A[k,1]*A[k,3]);
   WriteLn;
   End;
k:=0;
For i:= N downto 1 do
    if A[i,2] = 10 then k:=i;
if k > 0 then
   Begin
   Write('10 - ',A[k,1]*A[k,3]);
   S:=0;
   For i:= k+1 to N do
       if A[i,2] = 10 then
          Begin
          Write('+',A[i,1]*A[i,3]);
          S:=S+A[i,1]*A[i,3];
          End;
   if S <> 0 then Write('=',S+A[k,1]*A[k,3]);
   WriteLn;
   End;
k:=0;
For i:= N downto 1 do
    if A[i,2] = 11 then k:=i;
if k > 0 then
   Begin
   Write('11 - ',A[k,1]*A[k,3]);
   S:=0;
   For i:= k+1 to N do
       if A[i,2] = 11 then
          Begin
          Write('+',A[i,1]*A[i,3]);
          S:=S+A[i,1]*A[i,3];
          End;
   if S <> 0 then Write('=',S+A[k,1]*A[k,3]);
   WriteLn;
   End;
End.



Пример работы программы:

17 1 2
3 0 5
7 1 4
8 11 9
95 0 3
31 10 44
5 1 6
00 - 15+285=300
01 - 34+28+30=92
10 - 1364
11 - 72

(34.0k баллов)
0

Спасибо большое за помощь)