Помощь - Поиск - Пользователи - Календарь
Полная версия: Помогите написать програмку плиз(
Форум «Всё о Паскале» > 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
Список как структура данных ?
мисс_граффити
Ну так разобраться надо было, прежде чем пытаться втюхать лабу преподу.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.