Технический форум

Технический форум (http://www.tehnari.ru/)
-   Delphi, Kylix and Pascal (http://www.tehnari.ru/f43/)
-   -   Построить в ответе матрицу. Паскаль (http://www.tehnari.ru/f43/t251251/)

Владлена 07.01.2017 00:40

Построить в ответе матрицу. Паскаль
 
program qqsam2;
uses Crt;
const nmax = 9;
type pribor = record
name : string;
number : integer;
w_gold : real;
w_silv : real;
cost : real;
count : integer;
end;
var
p : array [1..nmax] of pribor;
i, n : byte;
CostAll, w_name : real;
enter_name : string;
begin
ClrScr;
Repeat
Writeln('Количество приборов (не более ', nmax, '): ');
Readln(n);
until n in [1..nmax];
Writeln('Введите данные о приборах: ');
for i := 1 to n do
begin
Write('Наименование прибора № ', i, ': '); Readln(p[i].name);
Write('Вес золота в приборе № ', i, ': '); Readln(p[i].w_gold);
Write('Вес серебра в приборе № ', i, ': '); Readln(p[i].w_silv);
Write('Стоимость прибора № ', i, ': '); Readln(p[i].cost);
Write('Количество приборов № ', i, ': '); Readln(p[i].count);
Writeln('========================================= ==========');
end;
ClrScr;
Write('Введите наименование прибора: '); Readln(enter_name);
CostAll := 0; w_name := 0;
for i := 1 to n do
begin
if p[i].name = enter_name then w_name := w_name + p[i].count * (p[i].w_gold + p[i].w_silv);
CostAll := CostAll + p[i].count * p[i].cost;
end;
Writeln('Общий вес драгоценных металлов в приборе ', enter_name, ' = ', w_name);
Writeln('Общая стоимость приборов: ', CostAll);
end.


Вот задача, но ответ нужен матрицей, не могу понять как его так вывести:sigh:

Vladimir_S 07.01.2017 09:44

Цитата:

Сообщение от Владлена (Сообщение 2450448)
Вот задача, но ответ нужен матрицей, не могу понять как его так вывести

Во-первых, с праздниками! Во-вторых, перестаньте шлёпать дубликаты задачи в разных темах: у нас это не приветствуется, а точнее, запрещено. И в третьих, выложите задание так, как оно сформулировано - подумаем.

Владлена 07.01.2017 20:47

Задан массив (размерность 9) записей следующей структуры:
- Наименование прибора
- Номер прибора
- Вес золота в приборе (ВЗ)
- Вес серебра в приборе (ВС)
- Стоимость прибора (С)
- Колличество приборов данного вида (КП)

Определить общий вес драгооценных металлов в приборах данного наименования К*(ВЗ+ВП).
Определить общую стоимость приборов в лаборатории.

И вас с праздниками!

Владлена 07.01.2017 20:47

в той теме никто не отвечал, пришлось новую завести

Vladimir_S 07.01.2017 22:13

М-да... Какая-такая "матрица" видится Вашему преподавателю - ума не приложу... Может быть, имеется в виду представить введённые данные в виде таблицы? Нет? Или, может быть, нужно сделать вариант программы, где вместо записей использовать двумерный массив? Или... в общем, плоховато у меня с телепатией.

Владлена 07.01.2017 22:45

Ответ в виде таблицы

Vladimir_S 08.01.2017 11:18

Вложений: 1
Ну, например, так:
Код:

program qqsam2;
uses Crt;

Const
 nmax = 9;

Type
 pribor = record
          name : string;
          number : integer;
          w_gold : real;
          w_silv : real;
          price : real;
          count : integer;
        end;

Var
 p:array [1..nmax] of pribor;
 i,j,n:byte;
 CostAll: real;

Begin
 ClrScr;
 Repeat
  Write('Количество приборов (не более ', nmax, '): ');
  Readln(n);
 Until n in [1..nmax];
 Writeln('Введите данные о приборах: ');
 for i:=1 to n do
  with p[i] do
  begin
    Write('Наименование прибора  N ', i, ': '); Readln(name);
    Write('Вес золота в приборе  N ', i, ': '); Readln(w_gold);
    Write('Вес серебра в приборе N ', i, ': '); Readln(w_silv);
    Write('Цена прибора          N ', i, ': '); Readln(price);
    Write('Количество приборов  N ', i, ': '); Readln(count);
    Writeln('====================================================');
  end;
 ClrScr;

 Writeln('  Наименование    Золото    Серебро      Цена  Количество  Au+Ag');
 CostAll:=0;
 for i:=1 to n do
  with p[i] do
  begin
    Write(name);
    for j:=Length(name)+1 to 18 do write(' ');
    write(w_gold:10:3);
    write(w_silv:10:3);
    write(price:10:2);
    write(count:10);
    writeln((w_gold+w_silv)*count:10:3);
    CostAll:=CostAll+price*count;
  end;

 Writeln('=========================================================');
 Writeln('Общая стоимость приборов: ', CostAll:0:2);
 Readln
end.



Часовой пояс GMT +4, время: 13:31.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.