Помощь - Поиск - Пользователи - Календарь
Полная версия: Помогите написать програмку плиз(
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Жувачка)
Итак,

Дан список стран. О каждой стране известно:

1) Наименование
2) Столица
3) Площадь
4) Численность населения

Задание - 1. Отсортировать список стран по плотности населения.
2. Напечатать страны, столицы которых начинаются на заданную букву


Вот как бы и весь расклад... Но есть нюансы... надо чтобы было решено с помощью процедур и функций, без типизированных файлов и прочих наворотов..

Ребят, реально кровь из носу надо сдать ее( выручайте( cray.gif
Lapp
 ! 
Срочно измени название темы (прочти Правила Форума, ссылка вверху)
Даю тебе час - или закрою тему

мисс_граффити
 type
ListEl= ^country;
country=record
name,cap: string;
peop: integer;
sq: real;
Next: ListEl;
end;

var List: ListEl;

procedure MakeList(var Head: ListEl);
var NewEl: ListEl;
cont: char;
begin
repeat
NewEl:=new(ListEl);
writeln('name?');
readln(NewEl^.name);
writeln('capital?');
readln(NewEl^.cap);
writeln('people?');
readln(NewEl^.peop);
writeln('square?');
readln(NewEl^.Sq);
NewEl^.Next:=Head;
Head:=NewEl;
writeln('No more countries? y/n');
readln(cont);
until cont='y';
end;

procedure View(const Head: ListEl);
var Curr: ListEl;
begin
Curr:=Head;
while Curr<>nil do
with Curr^ do
begin
write(name:10,cap:10,peop:10,sq:10:2);
writeln;
Curr:=Next;
end;
end;

procedure Sort(var Head: ListEl);
var Curr1,Curr2,Chan: ListEl;
begin
Curr1:=Head;
while Curr1^.Next<>nil do
begin
Curr2:=Head;
if (Curr2^.peop/Curr2^.sq)>(Curr2^.Next^.peop/Curr2^.Next^.sq) then
begin
Head:=Head^.Next;
Curr2^.Next:=Head^.Next;
Head^.Next:=Curr2;
end;
while Curr2^.Next^.Next<>nil do
begin
Chan:=Curr2;
if (Curr2^.Next^.peop/Curr2^.Next^.sq)>(Curr2^.Next^.Next^.peop/Curr2^.Next^.Next^.sq) then
begin
Chan:=Chan^.Next;
Curr2^.Next:=Chan^.Next;
Chan^.Next:=Chan^.Next^.Next;
Curr2^.Next^.Next:=Chan;
end;
Curr2:=Curr2^.Next;
end;
Curr1:=Curr1^.Next;
end;
end;

procedure Select(const Head: ListEl);
var sel: char;
Curr: ListEl;
begin
writeln('letter?');
readln(sel);
Curr:=Head;
while Curr<>nil do
begin
if Curr^.cap[1]=sel then
writeln(Curr^.name);
Curr:=Curr^.Next;
end;
end;

begin
List:=nil;
MakeList(List);
View(List);
writeln;
writeln;
Sort(List);
View(List);
Select(List);
readln;
end.

сортировка КРАЙНЕ неоптимальная.
оформления - НИКАКОГО (ни менюшки, ни шапки таблицы).
развлекайся...
Жувачка)
Спасибки огромные!) wub.gif
Жувачка)
НЕ прокатило( слишком тут как-то мудрено(
Tan
Список как структура данных ?
мисс_граффити
Ну так разобраться надо было, прежде чем пытаться втюхать лабу преподу.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.