Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник 357.docx
Скачиваний:
27
Добавлен:
30.04.2022
Размер:
1.75 Mб
Скачать

6.2 Примеры использования управляющих конструкций

Пример 1. Использование оператора switch

#include<stdio.h>

int main()

{

char c;

printf("Введите символы 'a' or 'b': ");

scanf("%c", &c);//считывание с консоли

switch (c)

{

case 'a':

printf("Введено 'a'.\n");

break;

case 'b':

printf("Введено 'b'.\n");

break;

default:

printf("Неизвестный символ\n");

}

return 0;

}

Пример 2. Пример использования вложенных if-else для организации меню в консольной программе

#include <math.h>

#include <stdio.h>

void main ( void )

{

Int choice; /* Текущийвыборпунктаменю*/

double fun, x; /* Значения функции и аргумента */

printf( "\nВведите аргумент x=" );

scanf( "%lf", &x );

printf ( "\n Введите номер функции:\n" );

printf ( "1. sin(x)\n2. cos(x)\n" );

printf ( "3. tan(x)\n4. Конец работы\n" );

scanf ( "%d", &choice );

if (choice==1) fun=sin(x);

else if (choice==2) fun=cos(x);

else if (choice==3) fun=tan(x);

else if (choice==4) { loop=0; break; }

else {printf("Неверный выбор\n" ); continue; }

printf( "Значение функции %lf\n", fun );

}

Пример 3. Программа, определяющая какая из курсорных клавиш была нажата

#include <stdio.h>

#include <conio.h>

#include <windows.h>

#include <locale.h>

void main()

{

intkey, scan=0;

setlocale(LC_ALL, "RUS"); // для переключения русской кодировки

printf("Нажмите одну из курсорных клавиш\n ");

key=_getch(); //scan=getch();

if (key>=0xe0) scan=_getch();

switch (scan)

{

case 77:

printf("стрелка вправо\n");

break;

case 75:

printf("стрелка влево\n");

break;

case 72:

printf("стрелка вверх\n");

break;

case 80:

printf("стрелка вниз\n");

break;

default:

printf("Не стрелка");

}

system("pause");

}

В программе использована функция getch(), которая возвращает код нажатой пользователем клавиши и не отображает символ на экране. В случае нажатия функциональных или курсорных клавиш, эта функция возвращает 0 или 0xE0 в зависимости от компилятора, и ее повторный вызов позволяет получить расширенный код клавиши.

6.3 Практические задания

1. Напишите программу «Калькулятор», для этого:

А) Оформите приглашение к вводу данных, так чтобы вводимая пользователем информация могла быть считана следующей функцией:

scanf(“%f%c%f”, &x, &c, &y);

где x и y типа float, а с – char.

Б) С использованием оператора switch интерпретируйте введенный символ для определения вида операции.

В) Организуйте вычисление и вывод результата непосредственно в функции printf:

printf(“=%f”, a+b);

2. Оформите внешний вид программы и добавьте бесконечный циклwhile() для повторения вычислений, пока пользователь не введет в качестве первого операнда 0.

while(1)

{

scanf(“%f%c%f”, &x, &c, &y);

if(x==0.) break;

// основной текст программы

}

3. Для разработанной программы придумайте дополнительный функционал и реализуйте дополнительный функционал – возведение в степень, логическое сложение и умножение, или возможность ввода операции умножения различными символами (‘*’или ‘x’), или различные проверки корректности ввода данных.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]