Автор: Маргаритка 27.11.2004 20:26
Мне задали огромную контрольную решить, я все задания решила кроме двух. Их я незнаю как решить. Помогите пожалуйста.
***
В области 10 районов. Известны площади, засеваемые пшеницей, и средняя урожайность (ц/га) в каждом районе. Определить количество пшеницы, собранное по каждому району и в по области в целом.
***
Японская радиокомпания провела опрос 250 радиослушателей по вопросу : "Какое животное Вы связываете с Японией и японцами ?". Составить программу получения пяти наиболее часто встречающихся ответов и их долей (в%).
Заранее благодарю!!!
Автор: arsen86 27.11.2004 22:17
я не специалист вообщето, но вот что у меня получилось по первой задачи
Код
uses crt;
var
field,ur:array[1..10] of real;
i:integer;
all:real;
begin
clrscr;
randomize; {если не хочется нибивать 20 чисел из клавы}
for i:=1 to 10 do
begin
field[i]:=random(200); { Заполняем массивы случайными числами}
ur[i]:=random(50);
end;
all:=0;
writeln('Номер поля Размер поля Средняя урожайность Урожай ');
for i:=1 to 10 do
begin
writeln(' ',i,' ',field[i]:10:3,' ',ur[i]:13:3,' ',field[i]*ur[i]:8:3);
all:=all+field[i]*ur[i];
end;
writeln('Общий урожай по области ',all:15:3);
readln;
end.
Автор: Флогримм 28.11.2004 15:12
вроде работает... правда это не самое красивое решение...
Код
uses crt;
const n=11;{количество животных}
m=5;{количество наиболее частовстречающихся ответов}
type five=record
zoo: string;{название животного}
count:byte;{количество повторений}
end;
var i,j,k:byte;
s:string;
maxes:array[1..m]of five;{массив из частовстречающихся ответов}
fv:array[1..n]of five;{массив названий}
begin
clrscr;
for i:=1 to n do
repeat
write(i, '> ');
readln(s);
fv[i].zoo:=s;
until s<>'';
writeln('***');
for i:=1 to n do write(i,')',fv[i].zoo:2,'; ');
writeln('***');
for i:=1 to n do{удаляем все повторяющиеся названия и в fv[i].count записываем сколько раз fv[i].zoo повторяется в списке}
if fv[i].zoo<>'' then
for j:=i+1 to n do
if (fv[i].zoo=fv[j].zoo)and(fv[i].zoo<>'') then
begin
inc(fv[i].count);
fv[j].zoo:='';
end;
writeln;
for i:=1 to n do if fv[i].zoo<>'' then inc( fv[i].count);
for i:=1 to m do{находим первые m частоповторяющихся названий}
begin
for j:=1 to n do
if fv[j].count>maxes[i].count then
begin
maxes[i].count:=fv[j].count;
maxes[i].zoo:=fv[j].zoo;
k:=j;
end;
fv[k].count:=0;
fv[k].zoo:='';
writeln(maxes[i].zoo,' - ',maxes[i].count,'(',maxes[i].count*100/n:2:2,'%)');
end;
end.