Перечисляемый тип данных. Определить какой месяц и в какой столице самый теплый - Delphi

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

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

Элемент t[x,y] означает среднемесячную температуру в столице x в месяце y. Определить, какой месяц m и в какой столице c самый теплый. C использованием StringGrid

Решение задачи: «Перечисляемый тип данных. Определить какой месяц и в какой столице самый теплый»

textual
Листинг программы
type Cap = (Moscow, Berlin, London, Vena);
     Month = (Apr, May, Jun, Jul, Aug, Sep);
const stl:array[Cap] of string=('Москва','Берлин','Лондон','Вена');
      mes:array[Month]of string=('Апрель','Май','Июнь','Июль','Август','Сентябрь');
procedure TForm1.FormCreate(Sender: TObject);
var c:Cap;
    m:Month;
begin
with StringGrid1 do
 begin
  fixedrows:=1;
  fixedcols:=1;
  colcount:=6;
  rowcount:=5;
  for c:=Moscow to Vena do
  cells[0,ord(succ(c))]:=stl[c];
  for m:=Apr to Sep do
  cells[ord(succ(m)),0]:=mes[m];
 end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var t: array[Cap, Month] of real;
    c,cmx: Cap;
    m,mmx: Month;
begin
randomize;
for c:=Moscow to Vena do
for m:=Apr to Sep do
 begin
  case m of
  Apr:t[c,m]:=10*random;
  May:t[c,m]:=5+10*random;
  Jun:t[c,m]:=10+10*random;
  Jul:t[c,m]:=15+15*random;
  Aug:t[c,m]:=15+15*random;
  Sep:t[c,m]:=5+15*random;
  end;
  StringGrid1.Cells[ord(m)+1,ord(c)+1]:=formatfloat('0.00',t[c,m]);
 end;
cmx:=Moscow;
mmx:=Apr;
for c:=Moscow to Vena do
for m:=Apr to Sep do
if t[c,m]>t[cmx,mmx] then
 begin
  cmx:=c;
  mmx:=m;
 end;
ShowMessage('Самый теплый месяц '+mes[mmx]+' в столице '+stl[cmx])
end;

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


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

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

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