Исправить программы
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.
Пример на продукте - бананы
program v1;
var m,n,sum,t:integer;
st1:string[10];
begin
sum:=0; t:=0;
writeln('Здравствуйте');
writeln('Банан красного цвета стоит 2500, банан синего цвета стоит 3000, банан черного цвета стоит 3700');
writeln('Сколько купите бананов '); readln(n);
writeln('Введите цвет бананов '); readln(st1);
if (st1='Красного') or (st1='красного') or (st1='Красный') or (st1='красный') then sum:=3000*n;
if (st1='Синего') or (st1='синего') or (st1='Синий') or (st1='синий') or (st1='Синей') or (st1='синей') then sum:=2500*n;
if (st1='Черного') or (st1='черного') or (st1='Чёрного') or (st1='чёрного') or (st1='Черный') or (st1='черный') or (st1='чёрный') or (st1='Чёрный') then sum:=3700*n;
writeln('Сумма покупки ', sum);
writeln('Введите сумму'); readln(m);
t:=m-sum;
writeln('Возьмите сдачу ',t);
writeln('Всего доброго, приходите еще');
end.
По условию данной нам задачи сказано, что общее число купленных персиков равно неизвестной а, также после покупки количества а персиков мы убираем от количества а количество b персиков, так как они оказались ещё зелёными. Следовательно у нас имеется количество съедобных персиков равны а - b. По условию задачи дано, что количество съедобных персиков было разделено поровну между четырьмя детьми. То есть мы количество а - b делим на четыре и получаем количество персиков которое получил каждый из детей.
ответ : каждый получил ( а - b ) / 4 персиков