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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2011, 18:47   #1
Adika
 
Аватар для Adika
 
Регистрация: 02.11.2011
Сообщений: 9
Вопрос ???(записи Паскаль)

Используя предложенную структуру записи, составить программу, которая для каждой из указанных стран содружества(список стран определяется соответствующим вариантом) вводит следующую информацию:
- название страны;
- численность населения, проживающего на территории страны;
- площадь территории страны;
- число школ, больниц, вузов;
печатает название страны (список стран), удовлетворяющей требованиям, указанным в варианте, и соответствующие характеристики.Записи, характеризующие отдельную страну, следует объединить в массив.

Узбекистан, Россия, Таджикистан. Напечатать список стран в порядке убывания плотности населения в них с указанием числа школ, приходящихся на 1000 человек

Код:
uses crt;                                                                     
const n=3;                                                                   
const m=11;                                                                  
type country=record                                                           
     nazv:array[1..m] of char;                                                
     plosh,plotn:real;                                                        
     people,school,hospital,vooz:integer;                                     
     end;                                                                     
var a:array[1..n] of country;                                                 
    inform:array[1..8] of real;                                               
    x:country;                                                                
    i,j,k,l:integer;                                                          
begin                                                                         
clrscr;                                                                       
for i:=1 to n do                                                              
begin                                                                         
write('nazvanie: '); begin                                                    
for k:=1 to m do                                                              
read(a[i].nazv[k]);  end;                                                     
write('ploshad territorii: '); readln(a[i].plosh);                            
write('chislennost naseleniya: '); readln(a[i].people);    
write('kolichestvo bolnic: '); readln(a[i].hospital);                         
write('kolichestvo shkol: '); readln(a[i].school);                            
write('kolichestvo vuzov: '); readln(a[i].vooz);                             
a[i].plotn:=a[i].people/a[i].plosh;                                           
end;                                                                          
for j:=1 to n do                                                             
inform[j]:=a[i].school/10;                                                    
clrscr;                                                                       
for i:=1 to n-1 do                                                            
for j:=i+1 to n do                                                            
if a[i].plotn<a[j].plotn then                                                 
begin                                                                         
x:=a[i];                                                                      
a[i]:=a[j];                                                                  
a[j]:=x;                                                                      
end;
А вот дальше не знаю как сделать массив записей, я только учусь, а в книгах так замудренно написанно. Помогите, пожалуйста... Срочно надо...
Adika вне форума Ответить с цитированием
Старый 29.11.2011, 19:14   #2
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию

Написал чуть по своему.Но суть та же.( В сам код не вникал )
Теперь у меня к вам вопросы

зачем это сюда a[i].plotn:=a[i].people/a[i].plosh; ?
что это такое inform[j]:=a[i].school/10; ?

Необязательно было вводить массив именно под имена стран.
Я вам написал в принципе тоже самое но без лишней траты строк.
Ну собственно давайте разбираться

Код:
uses crt;                                                                     
const n=4;                                                                                                                                   
type country=record  
     nazvanie:string;                                                                                                       
     plosh,plotn:real;                                                        
     people,school,hospital,vooz:integer;                                     
     end;      	 	 
var a, b:array[1..4] of country;                                                                                                
    x:country;                                                                
    i,j,k,l:integer;                                                          
begin                                                                         
clrscr;                                                                                                                                                                                                         
for i:=1 to n do begin  
    write(i,' nazvanie stranu: '); readln(a[i].nazvanie);                                                     
    write('ploshad territorii: '); readln(a[i].plosh);                            
    write('chislennost naseleniya: '); readln(a[i].people);    
    write('kolichestvo bolnic: '); readln(a[i].hospital);                         
    write('kolichestvo shkol: '); readln(a[i].school);                            
    write('kolichestvo vuzov: '); readln(a[i].vooz);                             
    {plotn:=a[i].people/a[i].plosh;}                                           
end;                                                                          
for j:=1 to n do                                                             
{inform[j]:=a[i].school/10;}                                                    
                                                                      
for i:=1 to n do  a[i]:=b[i]; 
 for i:=1 to n do                                                         
   for j:=i to n do                                                            
if b[i].plotn<b[j].plotn then                                                 
begin                                                                         
x:=b[i];                                                                      
b[i]:=b[j];                                                                  
b[j]:=x;   
For i:=1 To n Do Begin
    Write (b[i]:4,' ');
End;
readln;
end.
Люблю на ты.Я человек простой

Последний раз редактировалось Stilet; 29.11.2011 в 22:27.
Leshii вне форума Ответить с цитированием
Старый 29.11.2011, 19:45   #3
Adika
 
Аватар для Adika
 
Регистрация: 02.11.2011
Сообщений: 9
По умолчанию

Это проще конечно, но у нас в задание по программированию вот такое

Определена запись:
RECORD
NAZV:ARRAY[1..M] OF CHAR;
PLOSH:REAL;
PEOPLE,SCOOL,HOSPITAL,VOOZ:INTEGER;
END;
Используя предложенную структуру записи, составить программу, которая для каждой из указанных стран содружества(список стран определяется соответствующим вариантом) вводит следующую информацию:
- название страны;
- численность населения, проживающего на территории страны;
- площадь территории страны;
- число школ, больниц, вузов;
печатает название страны (список стран), удовлетворяющей требованиям, указанным в варианте, и соответствующие характеристики.
1. Величина М, т.е. количество букв в названии страны, должна быть описана в разделе констант.
2. Записи, характеризующие отдельную страну, следует объединить в массив.

В принципе я уже разобралась, спасибо вам большое, вы мне помогли, огромное спасибо)))
Adika вне форума Ответить с цитированием
Старый 29.11.2011, 19:52   #4
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию

Не за что Просто когда сделаете то что у вас получилось желательно было бы выкинуть сюда( чтоб я понял что вы поняли ) =)
Люблю на ты.Я человек простой
Leshii вне форума Ответить с цитированием
Старый 29.11.2011, 20:42   #5
Adika
 
Аватар для Adika
 
Регистрация: 02.11.2011
Сообщений: 9
Лампочка

Вот
Код:
program SNG;                                                                 
uses crt;                                                                     
const n=3;                                                                    
const m=11;                                                                   
type country=record                                                           
     nazv:array[1..m] of char;                                                
     plosh,plotn,school1:real;                                                
     people,school,hospital,vooz:integer;                                     
     end;                                                                     
var a:array[1..n] of country;                                                 
    x:country;                                                                
    i,j,k,l:integer;                                                         
begin                                                                         
clrscr;                                                                       
for i:=1 to n do                                                              
begin                                                                         
write('nazvanie: ');                                                          
begin                                                                         
for k:=1 to m do                                                              
read(a[i].nazv[k]);                                                           
end;                                                                          
write('ploshad territorii: '); readln(a[i].plosh);                            
write('chislennost naseleniya: '); readln(a[i].people);                       
write('kolichestvo bolnic: '); readln(a[i].hospital);                         
write('kolichestvo shkol: '); readln(a[i].school);                           
write('kolichestvo vuzov: '); readln(a[i].vooz);                              
a[i].plotn:=a[i].people/a[i].plosh; {вычисление плотности насления}                                         
a[i].school1:=a[i].school/1000; {вычисление числа школ, приходящихся на 1000 человек}                                            
end;                                                                          
clrscr;                                                                       
for i:=1 to n-1 do                                                            
for j:=i+1 to n do                                                           
if a[i].plotn<a[j].plotn then                                                 
begin                                                                         
x:=a[i];                                                                      
a[i]:=a[j];                                                                   
a[j]:=x;                                                                      
end;                                                                          
writeln('Spisok stran:');                                                     
for i:=1 to n do  begin                                                       
writeln(a[i]:4);                           
end;                                                                          
readln                                                                        
end.
Adika вне форума Ответить с цитированием
Старый 29.11.2011, 22:01   #6
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию

Вижу, вижу. Но уже на глаз море ошибок, сейчас тебе скину вывод по твоему случаю) Я тебе немного не тот вывод дал( прошу прощения ).
Люблю на ты.Я человек простой
Leshii вне форума Ответить с цитированием
Старый 29.11.2011, 22:03   #7
Adika
 
Аватар для Adika
 
Регистрация: 02.11.2011
Сообщений: 9
По умолчанию

Вот мой вывод, я тоже переделала)))
Код:
writeln('Spisok stran:');                                                     
for i:=1 to n do  begin                                                       
writeln('Strana: ',a[i].nazv);                                                
writeln('ploshad territorii: ',a[i].plosh:9:1);                               
writeln('chislennost naseleniya: ',a[i].people);                            
writeln('kolichestvo bolnic: ',a[i].hospital);                                
writeln('kolichestvo shkol: ',a[i].school);                                   
writeln('kolichestvo vuzov: ',a[i].vooz);                                     
writeln('plotnost naseleniya: ',a[i].plotn:5:2);                              
writeln('kolichestvo shkol, prihodyawixsya na 1000 chelovek: ',a[i].school1:3:
end;                                                                          
readln                                                                        
end.
Adika вне форума Ответить с цитированием
Старый 29.11.2011, 22:14   #8
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию

Код:
program SNG;
uses crt;
const n=3;
const m=11;
type country=record
     nazvanie:string;
     plosh,plotn,school1:real;
     people,school,hospital,vooz:integer;
     end;
var nazv:array[1..n] of string;
    a:array[1..m] of country;
    x:country;
    i,j,k,l:integer;
begin
clrscr;
for i:=1 to n do begin
    write('nazvanie: ');readln(nazv);

  for k:=1 to m do begin
   write('ploshad territorii: '); readln(a[k].plosh);
   write('chislennost naseleniya: '); readln(a[k].people);
   write('kolichestvo bolnic: '); readln(a[k].hospital);
   write('kolichestvo shkol: '); readln(a[k].school);
   write('kolichestvo vuzov: '); readln(a[k].vooz);
   a[k].plotn:=a[k].people/a[k].plosh;
   a[k].school1:=a[k].school/1000;
  end;
end;
for k:=1 to n-1 do
for j:=k+1 to m do
if a[k].plotn<a[j].plotn then
begin
x:=a[k];
a[k]:=a[j];
a[j]:=x;

writeln('Spisok stran:');
for i:=1 to n do
   writeln(nazvanie);
 for k:=1 to m do
   writeln(a[k].plosh);
   writeln(a[k].people);
   writeln(a[k].hospital);
   writeln(a[k].school);
   writeln(a[k].vooz);
   writeln(a[k].plotn);
   writeln(a[k].school1);
end;
readln;
end.
Мне показалось или же ты таки запуталась?)
Пример дан чтобы было с чего списать или же посмотреть. А вот дальше надо чуток импровизации.
Люблю на ты.Я человек простой

Последний раз редактировалось Leshii; 29.11.2011 в 22:21.
Leshii вне форума Ответить с цитированием
Старый 29.11.2011, 22:18   #9
Adika
 
Аватар для Adika
 
Регистрация: 02.11.2011
Сообщений: 9
По умолчанию

Честно говоря, не знаю, может и запуталась, у меня уже голова пухнет... Спасибо, Вам, большое))
Adika вне форума Ответить с цитированием
Старый 29.11.2011, 22:22   #10
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию

Самое главное что я уже запутался)
Люблю на ты.Я человек простой
Leshii вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль, записи Dean Помощь студентам 2 28.03.2011 15:35
паскаль(записи) masterlomaster Помощь студентам 8 27.03.2011 12:28
записи (паскаль) Rfn.if Помощь студентам 0 28.12.2010 22:45
Записи.Паскаль Екатерина) Помощь студентам 1 26.10.2010 22:38
Паскаль записи sllh_111 Помощь студентам 1 16.05.2010 21:54