Ну если просто вопрос-ответ
var a: integer;
b: string;
begin
write('ваш возраст - ');
readln(a);
write('твоё самое любимое увлечение - ');
readln(b);
...
и так далее спрашиваешь командой "write('вопрос')", а для ответа команда "readln(d)", где d - это переменная, перед тем как её написать туда, надо её объявить после команды "var" через запятую. Если ответом будет текст, то писать перед "string", если натуральное число, то перед "integer", если целое число, то перед "real"
(например
var a, b, c: integer;
d, e, f: string;
g, h: real;)
...
end.
ответ: добавил <limits.h>, хотя на Visual С++ у меня без этого работало, и условие && a != 0 (что то не везёт мне с этой задачей)
#include <iostream>
#include <limits.h>
using namespace std;
int main()
{
int a, i, imin, amin;
setlocale(LC_ALL, "Russian");
cout << "Введите числа: ";
i = 0;
amin = INT_MAX;
imin = 0;
do {
i++;
cin >> a;
if (a < amin && a != 0) {
amin = a;
imin = i;
}
} while (a != 0);
if (i > 1)
cout << "\n№ минимального элемента = " << imin << endl;
else
cout << "\nПоследовательность пустая" << endl;
getchar();
}
Вспомним формулу для n-го члена арифметической прогрессии и получим из нее n.
В соответствии с условиями нашей задачи это будет верно, если a1 и an - нечетные. Если a1 четное, то его надо уменьшить на 1. Аналогично, если an четное, его надо увеличить на 1. Таким образом, мы получаем алгоритм, пригодный для быстрого определения количества нечетных чисел на любом интервале с целочисленными границами.
Ниже приводится соответствующая программа.
program p11;
var
a,b,n:integer;
begin
Write('Введите границы интервала: '); Readln(a,b);
{ защита от неверного порядка ввода }
if a<b then begin n:=a; a:=b; b:=n end;
{ если надо, корректируем границы на нечет }
if (a mod 2)=0 then a:=a-1;
if (b mod 2)=0 then b:=b+1;
{ сам расчет }
n:=(a-b) div 2 + 1;
Writeln('Количество нечетных чисел на интервале равно ',n)
end.
Тестовое решение:
Введите границы интервала: -3 7
Количество нечетных чисел на интервале равно 6
1.2 В противоположность предложенному решению, где сначала надо было думать, можно использовать "метод грубой силы" (программисты называют его "брутфорс" - от английского bruteforce), т.е. программировать ни о чем не думая.
Ниже - пример такого решения. Оно более короткое, но при больших интервалах время решения окажется на несколько порядков больше.
program p12;
var
a,b,i,k:integer;
begin
Write('Введите границы интервала: '); Readln(a,b);
{ защита от неверного порядка ввода }
if a<b then begin k:=a; a:=b; b:=k end;
k:=0;
for i:=a downto b do
if (i mod 2)<>0 then k:=k+1;
Writeln('Количество нечетных чисел на интервале равно ',k)
end.
Тестовое решение:
Введите границы интервала: -3 7
Количество нечетных чисел на интервале равно 6
2.1. Тут задача на первый взгляд стандартная и вроде бы думать нечего - в цикле накапливаем сумму:
program p21;
var
i:integer;
x,s:real;
begin
Write('Введите значение x: '); Readln(x);
s:=0; i:=2;
while i<=20 do begin s:=s+i*x; i:=i+2 end;
Writeln('Cумма членов последовательности равна ',s)
end.
Тестовое решение:
Введите значение x: 2.15
Cумма членов последовательности равна 236.5
2.2. Но и тут есть место для размышлений. Опять вспоминаем математику.
Но полученная сумма - это сумма арифметической прогрессии с начальным членом, равным единице, конечным членом, равным 10 и разностью 1. Формула такой суммы известна и мы продолжаем преобразования.
Теперь можно и программу написать.
program p22;
var
x:real;
begin
Write('Введите значение x: '); Readln(x);
Writeln('Cумма членов последовательности равна ',110*x)
end.
Тестовое решение:
Введите значение x: 2.15
Cумма членов последовательности равна 236.5
Пары приведенных решений призваны показать, что первое пришедшее в голову решение обычно всегда не лучшее. А еще - что для качественного программирования надо учить математику.