Помощь - Поиск - Пользователи - Календарь
Полная версия: Записи
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
snopy
Помогите исправить эту программу пожайлуста.
2.Определена запись:
Record
name:array [1..m] of char; {название государства}
sqr : real; {площадь территории}
peop, sch, hosp, inst: word{численность населения, число школ, больниц, вузов}
end;
Используя предложенную структуру записи, составить программу, которая для указанных государств СНГ вводит информацию и печатает название государства, удовлетворяющего требованиям, указанным в варианте и соответствующие характеристики.
Россия, Молдова, Армения. Cписок государств в порядке убывания плотности населения.

Program CNG;
const
m=3;
type
gosydarstvo=record
name:array[1..m] of char;
sqr:real;
sch:1..5000;
hosp:1..5000;
inst:1..5000;
sgr:1..50000;
treb:record
peop,sch,hosp,inst,sqr:1..5;
s:real;
end;
end;
var
Group:array[1..m] of gosydarstvo;
i:byte;
buf:gosydarstvo;
BEGIN
writeln;
for i:=1 to m do
with group[i].treb do
begin
writeln('Vvedite danye',i,'po gosydarstvy');
write('Vvedite gosydarstvo: '); readln;
write('Vvedite chislenost naselenia, chislo shkol, bolnich, vyzov, ploshad');
readln(peop, sch, hosp, inst, sqr)
end; end.
for i: to n do begin
with group[i].treb do
s=peop/sqr;
for i:=1 to n-1 do
for j=i+1 to n do
if group[i].treb.s<group[j].treb.s then
begin
buf:=group[i];
group[i]:=group[j];
group[j]:=buf;
end
END.

snopy
пожайлуста помогите
мисс_граффити
поиск для кого сделан?
Записи
а вот то же самое - на списках:
Помогите написать програмку плиз(
snopy
спасибо за эти ссылки но я не понял как мне исправить эту программу
snopy
помогите пожайлуста мне эта задача очень нужна
мисс_граффити
что это такое?
     treb:record
peop,sch,hosp,inst,sqr:1..5;

Зачем оно нужно и откуда взялось?

И вообще, запись по заданию должна быть задана иначе, насколько я вижу...
snopy
это то что мне надо вводить а вместо 1..5 надо ставить 1.20000000 это диапозон возможных значений
Lapp
Цитата(snopy @ 29.11.2007 10:07) *

это то что мне надо вводить а вместо 1..5 надо ставить 1.20000000 это диапозон возможных значений

Но зачем ты дублируешь? запись в записи.. У тебя же уже есть это все!
Разве не нужно просто взять ту запись, которая дана уже?
volvo
snopy, смотри, я внес данные частично, поскольку для твоего задания кроме площади и населения ничего не требуется, закомментирован полный ввод данных. Посмотри, где ты ошибся...

const
m = 3;
type
gosydarstvo = record
name: string[10];
peop, sch, hosp, inst, sqr: longint;
s:real;
end;

const
Group: array[1 .. m] of gosydarstvo = (
(name: 'russia'; peop:150000000; sch:0; hosp:0; inst:0; sqr:17000000),
(name:'moldova'; peop: 3340000; sch:0; hosp:0; inst:0; sqr:33700),
(name:'armenia'; peop: 3213000; sch:0; hosp:0; inst:0; sqr:30000)
);

var
i, j: byte;
buf:gosydarstvo;

BEGIN
writeln;
(*
for i := 1 to m do
with group[i].treb do begin
writeln('Vvedite danye',i,'po gosydarstvy');
write('Vvedite gosydarstvo: '); readln;
write('Vvedite chislenost naselenia, chislo shkol, bolnich, vyzov, ploshad');
readln(peop, sch, hosp, inst, sqr)
end; end.
*)
for i := 1 to m do
group[i].s := group[i].peop / group[i].sqr;

for i := 1 to m do
for j := m downto i + 1 do
with group[i] do
if group[j - 1].s < group[j].s then begin
buf := group[j - 1]; group[j - 1] := group[j]; group[j] := buf;
end;

for i := 1 to m do
with group[i] do begin
writeln(name:10, s:10:5);
end;
END.

snopy
Большое спасибо
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.