Привет друзья, помогите пожалуйсто решить вот такую задачю через цикл while:
Даны целые числа a,n,x(с индексом 1),.......,x(с индексом n) (n>0). Определить каким по счёту в последовательности x(с индексом 1),......,x член равный a. Если такого члена нет, то ответом должно быть число 0.
Вот я тут попытался её решить, но она работает неправильно:
program vail;
var x,s,n,i:integer;
begin
writeln('vvedite kolichestvo chisel');
readln(n);
s:=0;
i:=0;
writeln('vvedite x');
readln(x);
while i<=n do
begin
i:=i+1;
begin
if x<2 then
x:=0;
end;
s:=s+x;
end;
writeln('symma ravna ',s);
end.
Ничего ты НЕ пытался решать. Подсунул задачу по вычислению суммы членов последовательности. Или это юмор такой?
Серьёзно для меня эта задача сложная поэтому я прошу у вас помощи.
Ну и что? Помощь подразумевает некое твое участие в процессе. А ты подсовываешь какую-то левую программу, выдавая ее за свою якобы написанную.
Вот когда хотя бы переменные, участвующие в твоей программе, правильно опишешь, тогда и жди какой-то помощи.
А ты можеш хотябы нормальным понятным языком объяснить условие задачи? если тя канешно незатруднит
Вообще-то объяснить нормальным понятным языком условие задачи - обязанность того, кто создает тему.
Ибо кроме него об этой задаче никто ничего не знает (кроме телепатов).
Вот поглядите решил, но он прекращает ввод чисел как только ты вводиш значение равное a, как тут исправить чтобы сначало вводить все числа в ряду, а потом уже после нажатия alt+F5 он выдавал каким по счёту число равное а в ряду расположено, иначе выводил 0
program vail;
var a,n,i,x:integer;
begin
writeln('vvedite chislo a');
readln(a);
writeln('vvedite kolichestvo chisel v ryady');
readln(n);
while a<>x do
begin
i:=0;
for x:=1 to n do
i:=i+1;
writeln('vvedite chisla ryada');
readln(x);
end;
if a=x then writeln('chislo v ryady po schety ',i) else writeln('0')
end.
Так пойдет?
Без alt+f5, правда... зачем здесь это сочетание - не поняла.
var a,n,x,i,num: integer;
begin
writeln('n=?');
readln(n);
writeln('a=?');
readln(a);
i:=1;
num:=0;
while i<=n do
begin
writeln('x=?');
readln(x);
if x=a then
num:=i;
inc(i);
end;
writeln;
writeln('number=',num);
readln;
end.
Ну в твоём варианте решения вводиться только одно число, а необходимо ввести столько чисел, чему равно n, и среди них програма должна выбрать какое по счёту было введёно число равное a, если такого числа необнаружено то ответ 0
program qweret;
uses crt;
var a,n,i,num: integer;x:real;
begin
clrscr;
writeln('n=?');
readln(n);
writeln('a=?');
readln(a);
i:=1;
num:=0;
while i<=n do
begin
writeln('x=?');
readln(x);
if x=a then
num:=i;
i:=i+1;
end;
writeln('number=',num);
end.
хм.. а в чем заключается обработка, если не секрет? в замене inc(i) на i:=i+1 (но это ничего не меняет), или в смене типа x на real? (так по заданию - целое число..) Ааа.. все дело в том что теперь отступов нет и код выглядит более.. эм.. загадочно? )
1) В таком виде у училки непоявиться подозрения что тебе ктото помогал делать задачу и она не начнёт загружать тебя левыми вопросами
2)При x:integer не будут вводиться дробные и отрицательные числа, а надо чтоб вводились.
3)
writeln;
writeln('number=',num);
readln;