Паскаль АВС. Выдаёт ошибку. Помогите исправить.
Задание:
на основе таблицы, включающей название планеты, расстояние от Солнца, количество спутников, период обращения, средний радиус, массу, вывести на печать характеристики планет, расположенных в порядке не возрастания количества спутников (массы, радиуса обращения) .
Изначальна эта программа была написана на фри паскаль.
Другие языки программирования и технологии
Мне нужна помощь в программировании
Поправил, работает:
program laba7;
type
stroka = record
nazvanie:String;
rast,perobr,rad,massa:real;
kol:integer;
end;
table=array [1..100] of stroka;
var
i,j,n,jmax:integer;
k:stroka;
v:table;
begin
Write ('Введите число планет n: ');
ReadLn (n);
for i:=1 to n do
begin
with v[i] do
begin
Write('Введите название планеты: ');
ReadLn(nazvanie);
Write('Введите расстояние от планеты до солнца: ');
ReadLn(rast);
Write('Введите количество спутников: ');
ReadLn(kol);
Write('Введите период обращения планеты: ');
ReadLn(perobr);
Write('Введите средний радиус планеты: ');
ReadLn(rad);
Write('Введите массу планеты: ');
ReadLn(massa);
end;
end;
WriteLn('Исходная таблица: ');
WriteLn('________________________________________________________');
WriteLn('|Название|Расстояние|Количество|Период |Средний|Масса|');
WriteLn('|планеты |до солнца |спутников |обращения|радиус | |');
WriteLn('________________________________________________________');
for i:=1 to n do
begin
with v[i] do
begin
WriteLn('|', nazvanie:8, '|', rast:10:0, '|', kol:10, '|', perobr:9:0, '|', rad:7:0, '|', massa:5:0, '|');
WriteLn('________________________________________________________');
end;
end;
WriteLn('Обработка таблицы');
WriteLn;
for i := 1 to n do
begin
jmax := i;
for j := i + 1 to n do
begin
if (v[jmax].kol < v[j].kol) or
(v[jmax].massa < v[j].massa) or
(v[jmax].rad < v[j].rad) or
(v[jmax].perobr < v[j].perobr) then
begin
jmax := j;
end;
end;
if jmax <> i then
begin
k := v[jmax];
v[jmax] := v[i];
v[i] := k;
end;
end;
WriteLn('Получилась таблица по убыванию количества спутников: ');
WriteLn('________________________________________________________');
WriteLn('|Название|Расстояние|Количество|Период |Средний|Масса|');
WriteLn('|планеты |до солнца |спутников |обращения|радиус | |');
WriteLn('________________________________________________________');
for i:=1 to n do
begin
with v[i] do
begin
WriteLn('|', nazvanie:8, '|', rast:10:0, '|', kol:10, '|', perobr:9:0, '|', rad:7:0, '|', massa:5:0, '|');
WriteLn('________________________________________________________');
end;
end;
end.
program laba7;
type
stroka = record
nazvanie:String;
rast,perobr,rad,massa:real;
kol:integer;
end;
table=array [1..100] of stroka;
var
i,j,n,jmax:integer;
k:stroka;
v:table;
begin
Write ('Введите число планет n: ');
ReadLn (n);
for i:=1 to n do
begin
with v[i] do
begin
Write('Введите название планеты: ');
ReadLn(nazvanie);
Write('Введите расстояние от планеты до солнца: ');
ReadLn(rast);
Write('Введите количество спутников: ');
ReadLn(kol);
Write('Введите период обращения планеты: ');
ReadLn(perobr);
Write('Введите средний радиус планеты: ');
ReadLn(rad);
Write('Введите массу планеты: ');
ReadLn(massa);
end;
end;
WriteLn('Исходная таблица: ');
WriteLn('________________________________________________________');
WriteLn('|Название|Расстояние|Количество|Период |Средний|Масса|');
WriteLn('|планеты |до солнца |спутников |обращения|радиус | |');
WriteLn('________________________________________________________');
for i:=1 to n do
begin
with v[i] do
begin
WriteLn('|', nazvanie:8, '|', rast:10:0, '|', kol:10, '|', perobr:9:0, '|', rad:7:0, '|', massa:5:0, '|');
WriteLn('________________________________________________________');
end;
end;
WriteLn('Обработка таблицы');
WriteLn;
for i := 1 to n do
begin
jmax := i;
for j := i + 1 to n do
begin
if (v[jmax].kol < v[j].kol) or
(v[jmax].massa < v[j].massa) or
(v[jmax].rad < v[j].rad) or
(v[jmax].perobr < v[j].perobr) then
begin
jmax := j;
end;
end;
if jmax <> i then
begin
k := v[jmax];
v[jmax] := v[i];
v[i] := k;
end;
end;
WriteLn('Получилась таблица по убыванию количества спутников: ');
WriteLn('________________________________________________________');
WriteLn('|Название|Расстояние|Количество|Период |Средний|Масса|');
WriteLn('|планеты |до солнца |спутников |обращения|радиус | |');
WriteLn('________________________________________________________');
for i:=1 to n do
begin
with v[i] do
begin
WriteLn('|', nazvanie:8, '|', rast:10:0, '|', kol:10, '|', perobr:9:0, '|', rad:7:0, '|', massa:5:0, '|');
WriteLn('________________________________________________________');
end;
end;
end.
Ужасно было написано. Гораздо проще написать заново. Тем более, что кодировка кирилицы другая.
Исправил компилируется за результат не отвечаю
program Project1;
{$APPTYPE CONSOLE}
type
stroka = record
nazvanie: array [1 .. 100] of char;
rast, perobr, rad, massa: real;
kol: integer;
end;
table = array [1 .. 100] of stroka;
var
i, j, n, imax, max: integer;
k: stroka;
v: table;
begin
write('‚ўҐ¤Ё зЁб «® Ї« Ґв n= ');
readln(n);
for i := 1 to n do
begin
with v[i] do
begin
write('‚ўҐ¤Ё §ў ЁҐ Ї« Ґвл ');
readln(nazvanie[i]);
write('‚ўҐ¤Ё а ббв®пЁҐ Ї« Ґвл ®в ‘®«ж ');
readln(rast);
write('‚ўҐ¤Ё Є®«ЁзҐбвў® бЇгвЁЄ®ў ');
readln(kol);
write('‚ўҐ¤Ё ЇҐаЁ®¤ ®Ўа йҐЁп Ї« Ґвл ');
readln(perobr);
write('‚ўҐ¤Ё б।Ё© а ¤Ёгб Ї« Ґвл ');
readln(rad);
write('‚ўҐ¤Ё ¬ ббг Ї« Ґвл ');
readln(massa);
end;
end;
writeln('€б室 п в Ў«Ёж ');
writeln('________________________________________________________');
writeln('|Ќ §ў ЁҐ|ђ ббв®пЁҐ|Љ®«ЁзҐбвў®|ЏҐаЁ®¤ |‘।Ё©|Њ бб |');
writeln('| Ї« Ґвл| ®в ‘®«ж | бЇгвЁЄ®ў|®Ўа 饨п| а ¤Ёгб| |');
writeln('________________________________________________________');
for i := 1 to n do
begin
with v[i] do
begin
write(nazvanie[i]);
write('| ', rast, ' | ', kol, ' | ', perobr, ' | ', rad, ' | ',
massa, '|');
writeln('_______________________________________________________________________________');
end;
end;
writeln('ЋЎа Ў®вЄ в Ў«Ёжл');
for i := 1 to n do
begin
max := v[i].kol;
for j := i to n do
if v[i].kol > max then
begin
imax := j;
k.kol := v[i].kol;
end;
k := v[imax];
v[imax] := v[i];
v[i] := k;
end;
writeln('Џ®«гзЁ« бм в Ў«Ёж Ї® гЎлў Ёо Є®«ЁзҐбвў бЇгвЁЄ®ў');
writeln('________________________________________________________');
writeln('|Ќ §ў ЁҐ|ђ ббв®пЁҐ|Љ®«ЁзҐбвў®|ЏҐаЁ®¤ |‘।Ё©|Њ бб |');
writeln('| Ї« Ґвл| ®в ‘®«ж | бЇгвЁЄ®ў|®Ўа 饨п| а ¤Ёгб| |');
writeln('________________________________________________________');
for i := 1 to n do
begin
with v[i] do
begin
with v[i]
do
begin
write(nazvanie[i]);
write('| ', rast, ' | ', kol, ' | ', perobr, ' | ', rad, ' | ',
massa, '|');
writeln('_______________________________________________________________________________');
end;
end;
end;end.
Трабла здесь
k:=v[i].kol;
[dcc32 Error] Project1.dpr(61): E2010 Incompatible types: 'stroka' and 'Integer'
program Project1;
{$APPTYPE CONSOLE}
type
stroka = record
nazvanie: array [1 .. 100] of char;
rast, perobr, rad, massa: real;
kol: integer;
end;
table = array [1 .. 100] of stroka;
var
i, j, n, imax, max: integer;
k: stroka;
v: table;
begin
write('‚ўҐ¤Ё зЁб «® Ї« Ґв n= ');
readln(n);
for i := 1 to n do
begin
with v[i] do
begin
write('‚ўҐ¤Ё §ў ЁҐ Ї« Ґвл ');
readln(nazvanie[i]);
write('‚ўҐ¤Ё а ббв®пЁҐ Ї« Ґвл ®в ‘®«ж ');
readln(rast);
write('‚ўҐ¤Ё Є®«ЁзҐбвў® бЇгвЁЄ®ў ');
readln(kol);
write('‚ўҐ¤Ё ЇҐаЁ®¤ ®Ўа йҐЁп Ї« Ґвл ');
readln(perobr);
write('‚ўҐ¤Ё б।Ё© а ¤Ёгб Ї« Ґвл ');
readln(rad);
write('‚ўҐ¤Ё ¬ ббг Ї« Ґвл ');
readln(massa);
end;
end;
writeln('€б室 п в Ў«Ёж ');
writeln('________________________________________________________');
writeln('|Ќ §ў ЁҐ|ђ ббв®пЁҐ|Љ®«ЁзҐбвў®|ЏҐаЁ®¤ |‘।Ё©|Њ бб |');
writeln('| Ї« Ґвл| ®в ‘®«ж | бЇгвЁЄ®ў|®Ўа 饨п| а ¤Ёгб| |');
writeln('________________________________________________________');
for i := 1 to n do
begin
with v[i] do
begin
write(nazvanie[i]);
write('| ', rast, ' | ', kol, ' | ', perobr, ' | ', rad, ' | ',
massa, '|');
writeln('_______________________________________________________________________________');
end;
end;
writeln('ЋЎа Ў®вЄ в Ў«Ёжл');
for i := 1 to n do
begin
max := v[i].kol;
for j := i to n do
if v[i].kol > max then
begin
imax := j;
k.kol := v[i].kol;
end;
k := v[imax];
v[imax] := v[i];
v[i] := k;
end;
writeln('Џ®«гзЁ« бм в Ў«Ёж Ї® гЎлў Ёо Є®«ЁзҐбвў бЇгвЁЄ®ў');
writeln('________________________________________________________');
writeln('|Ќ §ў ЁҐ|ђ ббв®пЁҐ|Љ®«ЁзҐбвў®|ЏҐаЁ®¤ |‘।Ё©|Њ бб |');
writeln('| Ї« Ґвл| ®в ‘®«ж | бЇгвЁЄ®ў|®Ўа 饨п| а ¤Ёгб| |');
writeln('________________________________________________________');
for i := 1 to n do
begin
with v[i] do
begin
with v[i]
do
begin
write(nazvanie[i]);
write('| ', rast, ' | ', kol, ' | ', perobr, ' | ', rad, ' | ',
massa, '|');
writeln('_______________________________________________________________________________');
end;
end;
end;end.
Трабла здесь
k:=v[i].kol;
[dcc32 Error] Project1.dpr(61): E2010 Incompatible types: 'stroka' and 'Integer'
Похожие вопросы
- Нужна помощь по программированию. Даны две упорядоченные по неубыванию целочисленные последовательности, получить...
- Нужна помощь по программированию. Язык с++
- Нужна помощь по языку программирования PROLOG
- нужна помощь профи в программировании,и просто в ПК
- Нужна кому-нибудь помощь с программированием?
- Нужен наставник в программировании
- Нужна помощь в решении задачи по языку программирования С++!!срочно!
- Программирование, нужна помощь срочно, не за бесплатно
- НУЖНА ПОМОЩЬ!!!!«Основы алгоритмизации и программирования»..СПАСИБО ОГРОМНОЕ.
- Хочу создать свой язык программирования. Нужна помощь по синтаксису