Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2007, 19:31   #1
11111
Пользователь
 
Регистрация: 14.10.2007
Сообщений: 25
По умолчанию записи

Помогите исправить эту программу пожайлуста.
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.
11111 вне форума Ответить с цитированием
Старый 29.11.2007, 10:23   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
write('Vvedite gosydarstvo: '); readln;
А в какую переменную тебе нужно ввести государство?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.11.2007, 15:28   #3
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Стр.7 sqr – стандартная функция Паскаля и ее нельзя использовать как переменную.
Стр.11 – повтор.
Стр.12-13, 18, 23-30 – проблемы с вводом чисел, переполняется стек, надо разбираться, если не сможешь, убери.
Стр.22 – не надо.
Стр.30 – убрать end.
Дальше галиматья, хочешь, разбирайся.
Стр.31,35 – откуда n.
Стр.35 необъявленная переменная j.
Вот очень простой рабочий код. Будут вопросы, пиши.
Код:
program SNG;
uses crt;
const m=3;
type
   gos=record
         name:string;
         S:real;
         peop:word;
         sch:word;
         hosp:word;
         inst:word;
       end;
var G:array[1..m] of gos;
    i,j:integer;
    x:gos;s:real;
begin
clrscr;
    G[1].name:='Россия'; G[2].name:='Молдова '; G[3].name:='Армения';
    G[1].peop:=140;G[2].peop:=20;G[3].peop:=40;
    G[1].S:=500;G[2].S:=20;G[3].S:=60;
    G[1].sch:=5000;G[2].sch:=200;G[3].sch:=100;
    G[1].hosp:=3000;G[2].hosp:=100;G[3].hosp:=60;
    G[1].inst:=2000;G[2].inst:=20;G[3].inst:=20;

    for i:=1 to 2 do begin
    for j:=1 to 2 do
    if G[j].Peop/G[j].S<G[j+1].Peop/G[j+1].S
    then begin
    x:=G[j]; G[j]:=G[j+1];G[j+1]:=x;
    end;end;
    for i:=1 to 3 do
    Writeln(G[i].name);
    readln;end.
puporev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Записи Rio309 Помощь студентам 1 15.03.2008 22:23
Записи Xeon332 Помощь студентам 5 12.01.2008 23:17
Записи RECREATOR Помощь студентам 3 25.12.2007 10:58
Записи zzzzz Помощь студентам 1 25.05.2007 16:26