Добавить и вычислить в структуре поле "Минимальный прирост" - 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.
Объяснение кода листинга программы
- Создается переменная
minprir
типаreal
, которая будет использоваться для хранения минимального прироста. - Создается переменная
k
типаinteger
, которая будет использоваться для отслеживания количества городов с приростом более 2 тысяч человек. - Создается переменная
nk
типаinteger
, которая будет использоваться для обозначения года, в котором нужно рассчитать прирост. - Создается переменная
bol
типаinteger
, которая будет использоваться для обозначения порогового значения прироста (2 тысячи человек). - Создается переменная
tmp
типаprirost
, которая будет использоваться для временного хранения данных о городе. - Создается массив
tbl
типаprirost
, который будет использоваться для хранения данных о городах с приростом более 2 тысяч человек. - Создается переменная
m
типаinteger
, которая будет использоваться для определения количества городов, введенных пользователем. - Задаются начальные значения для переменной
k
. - Задается начальное значение для переменной
minprir
. - Задается начальное значение для переменной
nk
. - Задается начальное значение для переменной
bol
. - Выводится сообщение с просьбой ввести количество городов.
- В цикле
for
считывается информация о каждом городе. - Внутри цикла
for
считывается информация о каждом годе. - Внутри цикла
for
сравниваются значения прироста в разных годах. - Если значение прироста в текущем году больше значения
bol
, то увеличивается значениеk
. - После завершения цикла
for
происходит сортировка городов по названию. - Выводится сообщение с информацией о количестве городов с приростом более 2 тысяч человек в текущем году.
- Выводится сообщение с информацией о минимальном приросте.
- Выводится сообщение с информацией о количестве городов с приростом более 2 тысяч человек в году
nk
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д