Консультация № 178170
02.05.2010, 21:01
0.00 руб.
0 4 1
1)Помогите пож переделать программу.Надо переделать эту программу в три программы 1)с Goto(метка) 2)With 3)Repeat

2)Сделать эту программу с вариантами записи


Пишу навсякий случай задачу сделаной программы
{1)Богаж пассажира характеризуеться колличеством вещей(целый тип) и общим весом вещей(вещественый тип).Дан список о багаже 10 пасажиров.Определить имееться ли пасажир багар которого состоит из 1 вещей
весом менее 30 кг.}

Приложение:
Uses Crt;
Type
passag = Record
vechi:Byte;
ves:Real;
end;
Var
nomer:Array[1..10] of passag;
i,vechi:Byte;
begin
vechi:= 0;
Writeln('Список пассажиров:');
for i:=1 to 10 do
begin
nomer.vechi := Random(5);
if nomer.vechi = 0 then nomer.ves:= 0
else
nomer.ves:= 60 * Random;
Writeln('Пасажир№',i,nomer.vechi:4,nomer.ves:7:2);
end;
Writeln;
for i:=1 to 10 do
begin
if (nomer.vechi = 1) and (nomer.ves<30) then
begin
Inc (vechi);
Writeln('Пасажир имееться:№',i,nomer.vechi:4,nomer.ves:7:2);
end;
end;
if (vechi= 0) then
Writeln('такого пасажира нет');
end.

Обсуждение

Неизвестный
02.05.2010, 21:04
общий
То есть: одну программу, где используется Goto, вторую - только while, третью - только repeat?
Неизвестный
02.05.2010, 21:05
общий
да
Неизвестный
02.05.2010, 21:09
общий
Извените в приложении чуть ошибка в строке нету [i].вот правильней программа
Uses Crt;
Type
passag = Record
vechi:Byte;
ves:Real;
end;
Var
nomer:Array[1..10] of passag;
i,vechi:Byte;
begin
vechi:= 0;
Writeln('Список пассажиров:');
for i:=1 to 10 do
begin
nomer[i].vechi := Random(5);
if nomer[i].vechi = 0 then nomer[i].ves:= 0
else
nomer[i].ves:= 60 * Random;
Writeln('Пасажир№',i,nomer[i].vechi:4,nomer[i].ves:7:2);
end;
Writeln;
for i:=1 to 10 do
begin
if (nomer[i].vechi = 1) and (nomer[i].ves<30) then
begin
Inc (vechi);
Writeln('Пасажир имееться:№',i,nomer[i].vechi:4,nomer[i].ves:7:2);
end;
end;
if (vechi= 0) then
Writeln('такого пасажира нет');
end.
давно
Академик
320937
2216
02.05.2010, 23:03
общий
это ответ
Здравствуйте, sannek2. Программы While, GoTo, Repeat в приложении. ABC-Pascal.


Приложение:
{ goto }
Uses
Crt;
label
g1, g2;
Type
passag = Record
vechi:Byte;
ves:Real;
end;
Var
nomer:Array[1..10] of passag;
i,vechi:Byte;
begin
vechi:= 0;
Writeln('Список пассажиров:');

i:= 1;
g1:
nomer[i].vechi := Random(5);
if nomer[i].vechi = 0 then
nomer[i].ves:= 0
else
nomer[i].ves:= 60 * Random;
Writeln('Пасажир №',i,nomer[i].vechi:4,nomer[i].ves:7:2);
i:= i+1;
if i<=10 then
goto g1;
Writeln;

i:= 1;
g2:
if (nomer[i].vechi = 1) and (nomer[i].ves<30) then
begin
Inc (vechi);
Writeln('Пасажир имеется:№',i,nomer[i].vechi:4,nomer[i].ves:7:2);
end;
i:= i+1;
if i<=10 then
goto g2;

if (vechi= 0) then
Writeln('такого пасажира нет');
end.

(*====================*)
{ repeat }
Uses
Crt;
Type
passag = Record
vechi:Byte;
ves:Real;
end;
Var
nomer:Array[1..10] of passag;
i,vechi:Byte;
begin
vechi:= 0;
Writeln('Список пассажиров:');
i:= 0;
repeat
i:= i+1;
nomer[i].vechi := Random(5);
if nomer[i].vechi = 0 then
nomer[i].ves:= 0
else
nomer[i].ves:= 60 * Random;
Writeln('Пасажир №',i,nomer[i].vechi:4,nomer[i].ves:7:2);
until i=10;
Writeln;

i:= 0;
repeat
i:= i+1;
if (nomer[i].vechi = 1) and (nomer[i].ves<30) then
begin
Inc (vechi);
Writeln('Пасажир имеется:№',i,nomer[i].vechi:4,nomer[i].ves:7:2);
end;
until i=10;

if (vechi= 0) then
Writeln('такого пасажира нет');
end.

(*=================*)
{ while }
Uses
Crt;
Type
passag = Record
vechi:Byte;
ves:Real;
end;
Var
nomer:Array[1..10] of passag;
i,vechi:Byte;
begin
vechi:= 0;
Writeln('Список пассажиров:');
i:= 1;
while i<= 10 do
begin
nomer[i].vechi := Random(5);
if nomer[i].vechi = 0 then
nomer[i].ves:= 0
else
nomer[i].ves:= 60 * Random;
Writeln('Пасажир №',i,nomer[i].vechi:4,nomer[i].ves:7:2);
i:= i+1;
end;
Writeln;

i:= 1;
while i<= 10 do
begin
if (nomer[i].vechi = 1) and (nomer[i].ves<30) then
begin
Inc (vechi);
Writeln('Пасажир имеется:№',i,nomer[i].vechi:4,nomer[i].ves:7:2);
end;
i:= i+1;
end;

if (vechi= 0) then
Writeln('такого пасажира нет');
end.
5
Спс большое
Форма ответа