Дан целочисленный массив А размера 10. Вывести номер первого и последнего тех его элементов A[i], которые удовлетворяют двойному неравенству: A[1]<A[i]a[1]) and (a[i]<a[n]);
end;
for i:=1 to n do
writeln;
writeln(n);
readln;
end.
Другие языки программирования и технологии
Помогите найти ошибку в программе, заранее спасибо)
program laba4v1;
const
n=10;
var
i: integer;
a: array [1..n] of integer;
begin
randomize;
for i:=1 to n do
begin
a[i]:=random(10);
writeln('A(',i,')=',a[i],' ');
end;
i:=1;
for i:=2 to n do
if (a[i]>a[1]) and (a[i]<a[n]) then writeln(a[i]);
readln;
end.
Вот код который выполняет ваше условие.
Но только в случае везения. Так как условие некорректно для случайных чисел. Частенько первое число получается таким, что если остальные больше него, то они не бывают меньше последнего.
Это же случайность. Например А1=9, а А10=0. В итоге ни одно число между ними и не выведется. Если только такой исход не учтен уже как допустимый.
const
n=10;
var
i: integer;
a: array [1..n] of integer;
begin
randomize;
for i:=1 to n do
begin
a[i]:=random(10);
writeln('A(',i,')=',a[i],' ');
end;
i:=1;
for i:=2 to n do
if (a[i]>a[1]) and (a[i]<a[n]) then writeln(a[i]);
readln;
end.
Вот код который выполняет ваше условие.
Но только в случае везения. Так как условие некорректно для случайных чисел. Частенько первое число получается таким, что если остальные больше него, то они не бывают меньше последнего.
Это же случайность. Например А1=9, а А10=0. В итоге ни одно число между ними и не выведется. Если только такой исход не учтен уже как допустимый.
вот здесь вообще бред какой-то
for i:=1 to n do
writeln;
writeln(n);
readln
for i:=1 to n do
writeln; ты в цикле просто 10 раз опускаешь строку вниз.
writeln(n); затем печатаешь n
readln; и просишь пользователя ввести значение в никуда
И в условии у тебя написано одно ( A[1]<A[i]a[1]) and (a[i]a[1]) and (a[i]<a[n]);)
проверь условие, напиши мне, и я сделаю тебе
for i:=1 to n do
writeln;
writeln(n);
readln
for i:=1 to n do
writeln; ты в цикле просто 10 раз опускаешь строку вниз.
writeln(n); затем печатаешь n
readln; и просишь пользователя ввести значение в никуда
И в условии у тебя написано одно ( A[1]<A[i]a[1]) and (a[i]a[1]) and (a[i]<a[n]);)
проверь условие, напиши мне, и я сделаю тебе
Павел Ш
readln в конце используется варварами для предотвращения закрытия окна программы, после ее функционального исполнения
Ну, цикл repeat, как мне кажется, тут вообще ни причем. Ты просто зацикливаешь программу, все время выполняя x:=i;
Можно изменить на что-то типа:
for i := 2 to n - 1 do
if (a[i] > a[1]) and (a[i] < a[n]) then
x := i;
Да и вообще непонятно что происходит дальше. У тебя какой-то цикл
for i := 1 to n do
writeln;
Зачем? Просто будет 10 переносов строки.
А затем ты еще выводишь n ( writeln(n);). Опять же зачем? Это константа, она равна 10.
Можно изменить на что-то типа:
for i := 2 to n - 1 do
if (a[i] > a[1]) and (a[i] < a[n]) then
x := i;
Да и вообще непонятно что происходит дальше. У тебя какой-то цикл
for i := 1 to n do
writeln;
Зачем? Просто будет 10 переносов строки.
А затем ты еще выводишь n ( writeln(n);). Опять же зачем? Это константа, она равна 10.
Борис Юркевич
readln; - чтобы задержать результат на экране после выполнения программы
Похожие вопросы
- помогите найти ошибка в программе на PASCAL тема: "файлы".
- Помогите найти ошибку в программе. C++
- Помогите найти ошибку в программе и исправить ее.
- Помогите найти ошибки в программе!
- Помогите найти ошибку в программе С++
- Помогите найти ошибку в программе Паскаль!
- Всем добрый вечер) пожалуйста,помогите найти ошибку в программе-->
- Помогите найти ошибку в программе (паскаль)
- КТО знает програмирование по QBASIC Описание темы: ПОМОГИТЕ НАЙТИ ОШИБКИ В ПРОГРАММЕ
- Помогите найти ошибку в программе.