aleksandrafrolo1
03.02.2020 15:42

Исправить программы
1. в файле типа record хранится информация о наличии на складе запасных частей для ремонта бытовых приборов: наименование детали, количество единиц на складе, цена одной детали, суммарная стоимость деталей каждого наименования, среднемесячная норма потребления. составить программу для получения:
• сведений о имеющихся на складе деталях, цена которых больше заданных;
• информации о количестве наименований деталей, среднемесячная норма потребления которых наибольшая.
program pascalguru;
uses crt;

type m = record
name : string[20];
kolvo : integer;
cena : real;
ctoim : real;
norma : real;
end;

var massiv: array[1..50] of m;
i,n,code,count: integer;
cenaposle,max: real;
s: string;
f: text;
{}

begin
assign (f,'bd31.txt' ); reset (f);

i: =0;
while not eof(f) do begin
inc(i);
readln(f,s);
massiv[i].name: =copy(s,1,pos(' ',s)-1 ); delete(s,1,pos(' ',s) );
val(copy(s,1,pos(' ',s)-1 ),massiv[i].kolvo,code ); delete(s,1,pos(' ',s) );
val(copy(s,1,pos(' ',s)-1 ),massiv[i].cena,code ); delete(s,1,pos(' ',s) );
val(copy(s,1,pos(' ',s)-1 ),massiv[i].ctoim,code ); delete(s,1,pos(' ',s) );
val(s,massiv[i].norma,code);
end;
n: =i;
{}
writeln('1: '); writeln;
write('detali, tsena kotoryh bolishe: '); readln(cenaposle);
writeln;

for i: =1 to n do
if massiv[i].cena> cenaposle then
writeln(massiv[i].name: 12,massiv[i].kolvo: 5,massiv[i].cena: 8: 2,massiv[i].ctoim: 8: 2,massiv[i].norma: 8: 2);

{}
writeln; writeln('2: '); writeln;

max: =massiv[1].norma;
for i: =2 to n do
if massiv[i].norma> max then max: =massiv[i].norma;

count: =0;
for i: =1 to n do
if massiv[i].norma=max then
begin
writeln(massiv[i].name: 12,massiv[i].kolvo: 5,massiv[i].cena: 8: 2,massiv[i].ctoim: 8: 2,massiv[i].norma: 8: 2);
inc(count);
end;

writeln; writeln('kol-vo: ',count);

close(f);
readln;
end.

2 дан массив 8 х 8. записать в другой массив максимальные элементы каждой строки, которые стоят на главной диагонали.

program code; begin

program pascalguru;

var a: array[1..8,1..8] of integer;

b: array[1..8] of integer;

i,j,k: integer;

begin

for i: =1 to 8 do

for j: =1 to 8 do a[i,j]: =2+random(26); {begin

write ('a[',i,',',j,']='); readln (a[i,j]); end; }

write ('vot vvedennaya vami matrica a: ');

for i: =1 to 8 do begin writeln;

for j: =1 to 8 do write (a[i,j]: 8,' '); end;

k: =0;

for i: =1 to 8 do

for j: =1 to 8 do

if i=j then begin inc(k); b[k]: =a[i,j]; end;

writeln; writeln; writeln('otvet: ');

for i: =1 to 8 do write (b[i]: 8,' ');

readln;

end.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
kupmvik
17.03.2023 05:57
// PascalABC.NET 3.0, сборка 1128
const
  nmax=100;
var
  n,i,j,nn,nz,np,t:integer;
  a,an,az,ap:array[1..nmax] of integer;
begin
  // формируем массив и выводим его
  Write('Количество элементов в массиве: '); Read(n);
  for i:=1 to n do begin
    a[i]:=Random(11)-5;
    Write(a[i],' ')
    end;
  Writeln;
  // разбиваем массив на три подмассива
  nn:=0; nz:=0; np:=0;
  for i:=1 to n do
    if a[i]<0 then begin nn:=nn+1; an[nn]:=a[i] end
    else
      if a[i]=0 then begin nz:=nz+1; az[nz]:=a[i] end
      else begin np:=np+1; ap[np]:=a[i] end;
  // сортируем массив с отрицательными элементами по убыванию
  for i:=1 to nn-1 do
    for j:=1 to nn-1 do
      if an[j]<an[j+1] then
        begin t:=an[j]; an[j]:=an[j+1]; an[j+1]:=t end;
  // сортируем массив с положительными элементами по возрастанию
  for i:=1 to np-1 do
    for j:=1 to np-1 do
      if ap[j]>ap[j+1] then
        begin t:=ap[j]; ap[j]:=ap[j+1]; ap[j+1]:=t end;
  // формируем новое содержимое массива a
  i:=0;
  for j:=1 to nz do begin i:=i+1; a[i]:=az[j] end;
  for j:=1 to np do begin i:=i+1; a[i]:=ap[j] end;
  for j:=1 to nn do begin i:=i+1; a[i]:=an[j] end;
  // вывод результата
  for i:=1 to n do Write(a[i],' ');
  Writeln
end.

Тестовое решение:
Количество элементов в массиве: 15
1 2 5 0 -5 -3 0 0 1 -4 3 -2 -2 0 -5
0 0 0 0 1 1 2 3 5 -2 -2 -3 -4 -5 -5
0,0(0 оценок)
Ответ:
danchik56
18.02.2020 23:36
PascalABC.NET 3.3.5, сборка 1662 от 29.04.2018
Внимание! Если программа не работает, обновите версию!

begin
  Write('0 1 ');
  var p:=1;
  for var i:=1 to 10 do begin
    p*=2;
    Write(i,' ',p,' ')
    end;
  Writeln
end.

Конечно, можно на каждом шаге вычислять два в нужной степени. Но это глуповатое занятие, поскольку мы видим: следующее значение степени равно удвоенному предыдущему. А начать надо, конечно, от единицы - нулевой степени двойки. Поэтому мы сразу выводим 0 и 1 и засылаем единицу в переменную р, которую потом будем удваивать.
Далее в цикле меняем i от 1 до 10 и для каждого i выводим его значение и через пробел удвоенное значение р.

Нужна в составлении программы , которая выводит таблицу степеней двойки ( от нулевой до десятой ) .
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота