Другие языки программирования и технологии
Информатика. Turbo Pascal.
Если n - четное, нужно выдать на экран четную последовательность. Т. е.: 2, 4, 6,..,n. Если n - нечетное, нужно выдать на экран нечетную последовательность. Т. е.: 1, 3, 5,..,n. И еще, последовательность должна остановиться на заданном числе n. Пример: n=4 => 2, 4 n=13 => 1, 3, 5, 7, 9, 11, 13 Абсолютно все числа последовательности должны выводиться на экран. НО: Вся загвоздка в том, что цикл использовать нельзя (тогда бы всё сама решила). Программу нужно написать с помощью операторов условий (ну и ввод-вывод, и прочее нужное).
n придется ограничить сверху:
Program Tanako;
Var i, n: Integer;
Begin
Write ("Введите n");
Readln (n);
If odd (n) than i:=1 else i:=2;
if (i < n) then
begin
Write(i,',');i:=i+2;
if (i < n) then
begin
Write(i,',');i:=i+2;
if (i < n) then
begin
Write(i,',');i:=i+2;
if (i < n) then
begin
Write(i,',');i:=i+2;
if (i < n) then
begin
Write(i,',');i:=i+2;
if (i < n) then
begin
Write(i,',');i:=i+2;
if (i < n) then Write('Задолбали извращенцы. допишите сами дальше свои if then до нужного n ')
end;
end;
end;
end;
end;
end;
End.
Program Tanako;
Var i, n: Integer;
Begin
Write ("Введите n");
Readln (n);
If odd (n) than i:=1 else i:=2;
if (i < n) then
begin
Write(i,',');i:=i+2;
if (i < n) then
begin
Write(i,',');i:=i+2;
if (i < n) then
begin
Write(i,',');i:=i+2;
if (i < n) then
begin
Write(i,',');i:=i+2;
if (i < n) then
begin
Write(i,',');i:=i+2;
if (i < n) then
begin
Write(i,',');i:=i+2;
if (i < n) then Write('Задолбали извращенцы. допишите сами дальше свои if then до нужного n ')
end;
end;
end;
end;
end;
end;
End.
Нельзя цикл - используй рекурсию, фигли:
procedure Printn(k,n);
begin
if k>n then
exit;
Writeln(k);
Printn(k+2,n);
end;
var n:integer;
begin
readln(n);
Printn(2-n mod 2, n);
readln;
end.
Почему нельзя использовать что-то, чего вы не проходили, что за дурацкие ограничения? ? Есть условие задачи, есть решение, которое ему удовлетворяет - все, дело сделано.
С помощью одних операторов условия эту задачу не сделать, во всяком случае - для больших Н.
procedure Printn(k,n);
begin
if k>n then
exit;
Writeln(k);
Printn(k+2,n);
end;
var n:integer;
begin
readln(n);
Printn(2-n mod 2, n);
readln;
end.
Почему нельзя использовать что-то, чего вы не проходили, что за дурацкие ограничения? ? Есть условие задачи, есть решение, которое ему удовлетворяет - все, дело сделано.
С помощью одних операторов условия эту задачу не сделать, во всяком случае - для больших Н.
Если цикл нельзя использовать тогда задачу можно решить, например, с помощью оператора Go to.
Program Tanako;
Var i, n: Integer;
Begin
Write ("Введите n");
Readln (n);
If odd (n) than i:=1 else i:=2;
1: Write (i);
i:=i+2;
If i < n than Go to 1
End.
Program Tanako;
Var i, n: Integer;
Begin
Write ("Введите n");
Readln (n);
If odd (n) than i:=1 else i:=2;
1: Write (i);
i:=i+2;
If i < n than Go to 1
End.
if else
Рекурсией =)
Похожие вопросы
- Что такое глобальные, формальные, локальные, фактические параметры в информатике. Turbo Pascal.
- Нужна помощь с задачами по информатике turbo pascal
- Люди помогите пожалуйста....Кто понимает TURBO PASCAL
- Помогите сделать задания по програмированию(двумерные массивы)Turbo Pascal
- Как вставить текст в Turbo Pascal 7.1???
- Turbo Pascal
- Объясните смысл прогаммы в Turbo Pascal
- Я в коледже Turbo Pascal прохожу. Скажите он вообще где нибудь нужен? Может Turbo Pascal морально устарел?
- DOS OC или создание ОС на Turbo Pascal
- turbo pascal 7.0 Определить принадлежность к области точек с заданными координатами!!!