Одномерный массив, Pascal
Помогите решить задачку на паскале:
Ввести одномерный массив . Размерность массива и тип элементов выбрать самим. Выполнить обработку массива: найти максимальный элемент массива и поставить его на место первого элемента, а первый - на место максимального (т.е. поменять местами первый и максимальный элементы). Исходный массив и результат вывести на экран.
Ввести одномерный массив . Размерность массива и тип элементов выбрать самим. Выполнить обработку массива: найти максимальный элемент массива и поставить его на место первого элемента, а первый - на место максимального (т.е. поменять местами первый и максимальный элементы). Исходный массив и результат вывести на экран.
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Код: Выделить всё
const
N=10;
type
TBaseType=integer;
var
A:array[1..N] of TBaseType;
Tmp: TBaseType;
i,MaxIdx:integer;
begin
{заполнение}
for i:=1 to n do a[i]:=random(100);
{вывод}
for i:=1 to n do write(a[i],'; ');
writeln;
{поиск номера максимального элемента}
MaxIdx:=1;
For i:=2 to N do if A[i]>A[MaxIdx] then MaxIdx:=i;
writeln('Номер максимального элемента: ', MaxIdx);
{перестановка}
Tmp:=A[1];
A[1]:=A[MaxIdx];
A[MaxIdx]:=Tmp;
{вывод}
for i:=1 to n do write(a[i],'; ');
writeln;
end.
у меня что-то не получается пише:
Fatal: Syntax error, ; expected but identifier N found
ставлю где он просит ; все рано не работает, просит поставить ; после type потом после var и т.д. что можно сделать?
Fatal: Syntax error, ; expected but identifier N found
ставлю где он просит ; все рано не работает, просит поставить ; после type потом после var и т.д. что можно сделать?
Удалить строчку const N=10; и везде вместо N поставь 10 ручками.
И янадеюсь ты написал перед этим Uses CRT; ?
И янадеюсь ты написал перед этим Uses CRT; ?
For Those Who About The Rock We Salute You!!!
да написал) Исправил все как ты сказал терь пишет:
Fatal: Syntax error, ; expected but identifier TBASETYPE found
Вот как выглядит у меня код:
uses crt;
begin clrscr;
type
TBaseType=integer;
var
A:array[1..10] of TbaseType;
Tmp: TBaseType;
i,MaxIdx:integer;
begin
for i:=1 to 10 do a:=random(100);
for i:=1 to 10 do writeln(a,'; ');
writeln;
MaxIdx:=1;
for i:=2 to 10 do if A>A[MaxIdx] then MaxIdx:=i;
writeln('Номер максимального элимента : ',MaxIdx);
Tmp:=A[l];
A[l]:=A[MaxIdx];
A[MaxIdx]:=Tmp;
for i:=l to 10 do write(a,'; ');
writeln;
end.
Fatal: Syntax error, ; expected but identifier TBASETYPE found
Вот как выглядит у меня код:
uses crt;
begin clrscr;
type
TBaseType=integer;
var
A:array[1..10] of TbaseType;
Tmp: TBaseType;
i,MaxIdx:integer;
begin
for i:=1 to 10 do a:=random(100);
for i:=1 to 10 do writeln(a,'; ');
writeln;
MaxIdx:=1;
for i:=2 to 10 do if A>A[MaxIdx] then MaxIdx:=i;
writeln('Номер максимального элимента : ',MaxIdx);
Tmp:=A[l];
A[l]:=A[MaxIdx];
A[MaxIdx]:=Tmp;
for i:=l to 10 do write(a,'; ');
writeln;
end.
так я тут лишнего накрутил вот исправленное. Терь прога не запускается точнее запускается ток быстро проскакует и все. Я открыл Command Shell там:
Running "c:\01\4.exe "
71;
51;
6;
78;
38;
12;
95;
75;
82;
59;
Номер максимального элимента: 7
Runtime error 201 at 0x004011DA
0x004011DA
0x00402125
Вот как выглядит у меня код:
uses crt;
type
TBaseType=integer;
var
A:array[1..10] of TbaseType;
Tmp: TBaseType;
i,L,MaxIdx:integer;
begin
for i:=1 to 10 do a:=random(100);
for i:=1 to 10 do writeln(a,'; ');
writeln;
MaxIdx:=1;
for i:=2 to 10 do if A>A[MaxIdx] then MaxIdx:=i;
writeln('Номер максимального элимента : ',MaxIdx);
Tmp:=A[l];
A[l]:=A[MaxIdx];
A[MaxIdx]:=Tmp;
for i:=l to 10 do write(a,'; ');
writeln;
end.
В чем может быть проблема? Еще я добавил L в integer и он не выводит результат с заменнеными числами.
Running "c:\01\4.exe "
71;
51;
6;
78;
38;
12;
95;
75;
82;
59;
Номер максимального элимента: 7
Runtime error 201 at 0x004011DA
0x004011DA
0x00402125
Вот как выглядит у меня код:
uses crt;
type
TBaseType=integer;
var
A:array[1..10] of TbaseType;
Tmp: TBaseType;
i,L,MaxIdx:integer;
begin
for i:=1 to 10 do a:=random(100);
for i:=1 to 10 do writeln(a,'; ');
writeln;
MaxIdx:=1;
for i:=2 to 10 do if A>A[MaxIdx] then MaxIdx:=i;
writeln('Номер максимального элимента : ',MaxIdx);
Tmp:=A[l];
A[l]:=A[MaxIdx];
A[MaxIdx]:=Tmp;
for i:=l to 10 do write(a,'; ');
writeln;
end.
В чем может быть проблема? Еще я добавил L в integer и он не выводит результат с заменнеными числами.
Код: Выделить всё
Tmp:=A[l];
A[l]:=A[MaxIdx];
A[MaxIdx]:=Tmp;
for i:=l to 10 do write(a[i],'; ');
writeln;
Тем более ты обьявил L как Integer и не иницализировал ее, она содержит хз что. Поэтому и ерроры.
For Those Who About The Rock We Salute You!!!
Огромное тебе СПАСИБО) если можешь помоги еще с двумерным массивом