В этом разделе на закрепление материала разбираются примеры программ с использованием условных конструкций языка Си switch и if; даются решенные задачи
if-1: Даны три целых числа. Найти количество положительных чисел в исходном наборе
* Из задачника М. Э. Абрамян (If4)
Проверить:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #include <stdio.h> main() { int a1, a2, a3; printf("a1:"); scanf ("%i", &a1); printf("a2:"); scanf ("%i", &a2); printf("a3:"); scanf ("%i", &a3); if (a1>0) a1=1; else a1=0; if (a2>0) a2=1; else a2=0; if (a3>0) a3=1; else a3=0; printf("%i\n",a1+a2+a3); } |
Показать аналог в Pascal:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | var N1, N2, N3, Res : Integer; begin Write('Введите перовое целое число: '); Readln(N1); Write('Введите второе целое число: '); Readln(N2); Write('Введите третье целое число: '); Readln(N3); Res:=0; if N1>0 then Inc(Res); if N2>0 then Inc(Res); if N3>0 then Inc(Res); writeln(Res); end. |
if-2: Даны координаты точки, не лежащей на координатных осях OX и OY. Определить номер координатной четверти, в которой находится данная точка.
* Из задачника М. Э. Абрамян (If22)
Проверить:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #include <stdio.h> int main(void) { float x, y; printf("x:"); scanf ("%f", &x); printf("y:"); scanf ("%f", &y); if ((x>0) & (y>0)) printf("I\n"); if ((x<0) & (y>0)) printf("II\n"); if ((x<0) & (y<0)) printf("III\n"); if ((x>0) & (y<0)) printf("IV\n"); return 0; } |
Показать аналог в Pascal:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | var X,Y: Real; begin Writeln('Введите координаты точки: '); Write('Введите координату X: '); Readln (X); Write('Введите координату Y: '); Readln (Y); if (X>0) and (Y>0) then Writeln('Точка лежит в I координатной четверти'); if (X<0) and (Y>0) then Writeln('Точка лежит во II координатной четверти'); if (X<0) and (Y<0) then Writeln('Точка лежит в III координатной четверти'); if (X>0) and (Y<0) then Writeln('Точка лежит в IV координатной четверти'); end. |
if-3: Дано целое число. Вывести его строку-описание вида «отрицательное четное число», «нулевое число», «положительное нечетное число» и т. д.
Решить на Си, используя в качестве подсказки решенный вариант на Паскале
Решить на Си, используя в качестве подсказки решенный вариант на Паскале
* Из задачника М. Э. Абрамян (If29)
Показать аналог в Pascal:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | var X: Integer; begin Write('Введите число '); Readln(X); if x =0 then Write('Нулевое ') else begin if x>0 then Write('Положительное ') else Write('Отрицательное '); if (x mod 2) = 0 then Write('чётное ') else Write('нечётное '); end; Writeln('число.'); end. |
Си switch 1: Дано целое число K. Вывести строку-описание оценки, соответствующей числу K (1 — «плохо», 2 — «неудовлетворительно», 3 — «удовлетворительно», 4 — «хорошо», 5 — «отлично»). Если K не лежит в диапазоне 1–5, то вывести строку «ошибка».
* Из задачника М. Э. Абрамян (Case2)
Проверить:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #include <stdio.h> int main(void) { int k; printf("K:") ; scanf ("%i", &k); switch (k) { case 1: printf("плохо\n") ; break; case 2: printf("неудовлетворительно\n") ; break; case 3: printf("удовлетворительно\n") ; break; case 4: printf("хорошо\n") ; break; case 5: printf("отлично\n") ; break; default: printf("ошибка\n") ; break; } return 0; } |
Показать аналог в Pascal:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | program Case2; var K:Integer; begin Write('Введите число оценки: '); Readln(K); Case K of 1: Writeln('плохо'); 2: Writeln('неудовлетворительно'); 3: Writeln('удовлетворительно'); 4: Writeln('хорошо'); 5: Writeln('отлично'); else Writeln('ошибка'); end; end. |