Добавить и вычислить в структуре поле "Минимальный прирост" - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Дана таблица |Город|Прирост населения,тыс.чел.| | |1999|2000|2001|2002|2003| Добавить и вычислить в структуре поле "Минимальный прирост". Определить количество городов с приростом в 2003 году более 2 тыс. чел. Упорядочить записи по алфавиту названия городов. Нужно 5 городов, данные о приросте берём произвольно. Помогите!???
Вот что сделал
Кто знает,что делать дальше?
Помогите доделать, плиз???

Решение задачи: «Добавить и вычислить в структуре поле "Минимальный прирост"»

textual
Листинг программы
Program P1;
Uses Crt;{подключение модуля, из которого используется процедура clrscr(очистка экрана)}
const nyear=1999;{год с котрого "все началось"}
      kyear=2003;{год котроым "все закончилось"}
      nk=2003;{в котором нужно псчитать прирост >2(следующая константа) }
      bol=2;
type prirost=RECORD
              city:string [15];{название города из 15 символов}
              year:record
                    pr:array[nyear..kyear] of real;{прирост по годам(см. const)}
                    minprir:real;{минимальный прирост}
                   end 
     end;
Var tbl:array [1..10] of prirost;
{массив записей (если больше 10, то нужно увеличить размерность массива)}
    tmp:prirost;
    i,j,k,m: integer;
Begin
 clrscr;{из модуля crt}
 write ('Введите количество городов: ');
 readln (m);
 writeln;k:=0;{счетчик вкотором хранятся записи о городах с приростом >2(константа bol)}
 for i:=1 to m do{ввод данных}
  with tbl[i] do
   Begin
    write ('введите название города: '); readln (city);
     with year do
      begin
       for j:=nyear to kyear do{ввод данных о приросте за j год} 
        begin
         write('прирост в ',j,' году: '); 
         readln(pr[j]);
        end;
       minprir:=pr[j];{минимальному приросту присваиваем значение за последний год}
      end;
     if year.pr[nk]>bol then inc(k){если прирост за nk год >bol
      (по задаче - 2 тыс. нас.) то увеличиваем значение k на 1}
   end;
 for i:=1 to m-1 do{сортировка по названию городов}
   for j:=1 to m-i do
     if tbl[j].city>tbl[j+1].city
      then
       begin
        tmp:=tbl[j];
        tbl[j]:=tbl[j+1];
        tbl[j+1]:=tmp
       end; 
 clrscr;{практически все остальное - вывод полученных данных и результатов}
 writeln('прирост населения с ',nyear,' по ',kyear,' в тыс. человек');
 writeln('записи упорядочены по названиям городов');{по правилам сравнения строк}
 write('+----------+');
 for i:=nyear to kyear+1 do write('-------+');writeln;
 write('|   город  |');
 for j:=nyear to kyear do write(j:7,'|');
 writeln('минимум|');
 write('+----------+');
 for i:=nyear to kyear+1 do write('-------+');writeln;
 for i:=1 to m do
  begin
   with tbl[i] do
    begin
     write('|',city:10,'|');
     with year do
      begin
       for j:=nyear to kyear do 
        begin
         if pr[j]<minprir then  minprir:=pr[j];{вычисление минимального прироста}
         write(pr[j]:7:1,'|');
        end; 
       writeln(minprir:7:1,'|')
      end 
    end
  end;  
 write('+----------+');
 for i:=nyear to kyear+1 do write('-------+');writeln;
 writeln('количество городов с приростом в ',nk,' году более ',bol,' тыс. чел: ',k);
 readln
end.

Объяснение кода листинга программы

  1. Создается переменная minprir типа real, которая будет использоваться для хранения минимального прироста.
  2. Создается переменная k типа integer, которая будет использоваться для отслеживания количества городов с приростом более 2 тысяч человек.
  3. Создается переменная nk типа integer, которая будет использоваться для обозначения года, в котором нужно рассчитать прирост.
  4. Создается переменная bol типа integer, которая будет использоваться для обозначения порогового значения прироста (2 тысячи человек).
  5. Создается переменная tmp типа prirost, которая будет использоваться для временного хранения данных о городе.
  6. Создается массив tbl типа prirost, который будет использоваться для хранения данных о городах с приростом более 2 тысяч человек.
  7. Создается переменная m типа integer, которая будет использоваться для определения количества городов, введенных пользователем.
  8. Задаются начальные значения для переменной k.
  9. Задается начальное значение для переменной minprir.
  10. Задается начальное значение для переменной nk.
  11. Задается начальное значение для переменной bol.
  12. Выводится сообщение с просьбой ввести количество городов.
  13. В цикле for считывается информация о каждом городе.
  14. Внутри цикла for считывается информация о каждом годе.
  15. Внутри цикла for сравниваются значения прироста в разных годах.
  16. Если значение прироста в текущем году больше значения bol, то увеличивается значение k.
  17. После завершения цикла for происходит сортировка городов по названию.
  18. Выводится сообщение с информацией о количестве городов с приростом более 2 тысяч человек в текущем году.
  19. Выводится сообщение с информацией о минимальном приросте.
  20. Выводится сообщение с информацией о количестве городов с приростом более 2 тысяч человек в году nk.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.286 из 5
Похожие ответы