Главная страница
Навигация по странице:

  • Вывод переменных a , b и c : a =1 b =2 c =3 Пример 5.

  • H=3.5 sm L=9.12 sm Пример 6.

  • Пример 8

  • Проверка условий. Ветвление программы: 2 ветви Пример 10.

  • Ветвление программы: много ветвей Пример 11

  • Пример 12.

  • Варианты задания

  • ОП_Лабораторная работа №1. Изучение базовых понятий программирования и технологии создания программ. Программирование ветвящихся


    Скачать 278.73 Kb.
    НазваниеИзучение базовых понятий программирования и технологии создания программ. Программирование ветвящихся
    Дата23.06.2021
    Размер278.73 Kb.
    Формат файлаdocx
    Имя файлаОП_Лабораторная работа №1.docx
    ТипЛабораторная работа
    #220858
    страница3 из 3
    1   2   3

    Ввод данных с клавиатуры и вывод на экран дисплея
    Пример 4. Написать инструкцию вывода значений целых переменных a, b и с. Значение каждой переменной должно быть выведено в отдельной строке, в начале вывода разместить заголовок.

    printf ("\nВывод переменных a,b и c: \n a=%d\n b=%d\n c=%d\n",a,b,c);
    Допустим a,b и c равны соответственно 1,2 и 3, тогда на экране увидим:

    Вывод переменных a, b и c:

    a=1

    b=2

    c=3
    Пример 5. Написать инструкцию вывода дробных значений переменных, которые определяют высоту (h) и длину (l) прямоугольника. Перед значением переменных должен быть пояснительный текст (h=, l=), а после — единица измерения – сантиметры (sm), между переменными поставить знак табуляции.

    printf("\nH=%f sm\tL=%f sm\n",h,l);
    Допустим h и l равны соответственно 3,5 и 9,12. На экране увидим:

    H=3.5 sm L=9.12 sm
    Пример 6. Написать инструкцию, обеспечивающую ввод с клавиатуры значения вещественной переменной rad

    double rad;

    scanf ("%le",&rad);
    Пример 7. Написать инструкции, которые обеспечивают ввод и последующий вывод значений вещественных переменных r и d. Предполагается, что пользователь после набора каждого числа будет нажимать какой-либо разделитель (<пробел>,<табуляцию> или ), а оканчивать ввод клавишей .
    double r,d;

    printf ("\ninput r,d :");

    scanf("%le %le",&r,&d);

    printf ("\nr=%f\td=%f\n",r,d);
    Пример 8: Ввести с клавиатуры значение угла (в радианах) и вычислить его

    синус.

    /* программа вычисления синуса */

    #include "stdafx.h"

    #include

    #include

    #include // библиотека математических функций

    int _tmain(int argc, _TCHAR* argv[])

    {

    double result , x; // определение переменных result , x (выделение памяти)

    printf("\nx="); // вывод «приглашения» на терминал

    scanf("%le",&x); //ввод с клавиатуры числа в переменную х

    // (формат числа: «длинное вещественное»)

    result = sin (x); // вычисление синуса

    // вывод результата на терминал

    printf("The sin() of %f is %f\n",x,result);

    system("pause"); // задержка в программе для просмотра результатов

    return 0; // возвращаемое значение функции main()

    }
    Можно изменить формат вывода вещественного числа, явно указав общее число выводимых символов и количество символов после запятой.

    Например вместо %f задать %10.2f , что означает вывести вещественное число в формате ХХХХХХХ.ХХ
    В примере измените формат вывода результата, обратите внимание на разницу в выводе данных:

    printf("The sin() of %2.3f is %2.3f\n",x,result);

    printf("The sin() of %e is %e\n",x,result);
    Пример 9. Написать программу для вычисления площади круга. Данные для вычисления ввести с клавиатуры.

    Потребуются переменные r для радиуса и s для результата вычисления.

    // подключение библиотек

    #include "stdafx.h"

    #include

    #include

    #define PI 3.14 // определяем константу PI

    int _tmain(int argc, _TCHAR* argv[])

    {int r;

    double s;

    printf ("\nr="); // «приглашение» для ввода радиуса

    scanf("%d",&r); // ввод радиуса с клавиатуры

    s=PI*r*r; // вычисление и запоминание (запись) результата в переменной s

    printf ("s=%10.4f\n",s); // вывод результата вычислений

    system("pause");

    return 0;

    }
    Проверка условий. Ветвление программы: 2 ветви
    Пример 10. Написать программу нахождения действительных корней квадратного уравнения общего вида аx2+bx+c=0

    #include "stdafx.h"

    #include

    #include

    #include

    int _tmain(int argc, _TCHAR* argv[])

    {

    int a, b, c; // Коэффициенты а,b,c

    double d,x1,x2;

    // приглашение для ввода и ввод переменных a, b, c

    printf ("a= "); scanf("%d",&a);

    printf ("b= "); scanf("%d",&b);

    printf ("c= "); scanf("%d",&c);

    d=b*b-4*a*c; // вычисление дискриминанта

    if ( d>0)

    { x1=(-b+sqrt(d))/(2.0*a); // вычисление корней

    x2=(-b-sqrt(d))/(2.0*a);

    printf ("x1=%f\n", x1); // Печать корней

    printf ("x2=%f\n", x2);

    }

    // Если корней нет, то вывод сообщения " no solution"

    else printf (" no solution\n");

    system("pause");

    return 0;

    }

    Ветвление программы: много ветвей
    Пример11. Написать программу, которая по введенному с клавиатуры номеру дня недели выводит на экран название этого дня.

    #include "stdafx.h"

    #include

    #include

    #include

    int _tmain(int argc, _TCHAR* argv[])

    { setlocale(LC_ALL, "Russian"); // русификация текстов

    int num;

    printf ("\nВведите номер дня недели >"); // Приглашение и ввод данных

    scanf("%d",&num);

    switch (num) // Выбор варианта

    {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;

    case 6: printf ("Суббота\n "); break;

    case 7: printf ("Воскресенье\n "); break;

    default: printf ("Номер неверен\n ");

    }

    system("pause");

    return 0;

    }
    Пример 12. Написать программу для вычисления площади круга. Данные для вычисления ввести с клавиатуры, проконтролировать корректность ввода данных.

    Алгоритм решения

    Для построения алгоритма решения выделим этапы обработки данных :

    первый этап – ввод данных в компьютер (значение радиуса r и константы PI);

    второй этап – вычисление по формуле

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

    // Версия программы с контролем ошибок ввода

    #include "stdafx.h"

    #include

    #include

    #define PI 3.14 // определяем константу PI

    int _tmain(int argc, _TCHAR* argv[])

    {int r;

    double s;

    printf ("\nr="); scanf("%d",&r);

    if (r>0) // проверка введенного значения r

    s=PI*r*r; // ветвь «да»: вычисление

    else

    printf ("error: r<0 !!! \n");// ветвь «нет»: сообщение об ошибке

    printf ("s=%f\n",s); // вывод результата вычислений

    system("pause");

    return 0;

    }

    Вопросы.

    1. В чем различие между константой и переменной?

    2. Приведите примеры объявления констант и переменных.

    3. Как изменить значение константы?

    4. Дайте определение термину "инициализация переменной"

    5. Перечислите стандартные типы данных языка Си.

    6. Перечислите основные характеристики стандартных типов данных.

    7. Какой тип данных нужно использовать для записи стоимости товара (в рублях и копейках)?

    8. Какова структура программы на языке Си?

    9. Что такое препроцессор?

    10. Какие функции выполняет директива #include.

    11. Какие функции выполняет директива #define

    12. Какие этапы трансляции Вы знаете?

    13. Какие операторы позволяют организовать ветвление программы?

    14. Что такое «логическое выражение»?

    15. Какие операции отношений вы знаете?

    16. Для чего нужны логические связки?

    17. Какие логические связки вы знаете?

    18. Нарисуйте в виде блок-схемы две формы условного оператора.

    19. Приведите примеры использования тернарного оператора.

    20. Что общего у операторов if и switch?

    21. Какие различия между операторами if и switch?



    Номер

    компьютера

    Варианты задания


    1,17

    Подсчитать площадь круга по введенному с клавиатуры радиусу.

    Проверить ошибки ввода и вывести сообщение об ошибке.

    Ошибка: нулевое или отрицательное значение радиуса.

    Определить название числа от 0 до 10, например, при вводе числа 5 писать «пять», если число >10, писать «число должно быть меньше 10»


    2,18

    Вычислить значение x= a*b/с

    a , b, с, d – целые числа, х – вещественное, a , b и с ввести с клавиатуры. Проверить ошибки ввода и вывести сообщение об ошибке.

    Ошибка: с=0

    Определить название месяца по введенному номеру, если число >12 или <1, написать «некорректный номер»


    3,19

    Подсчитать периметр прямоугольника по введенным с клавиатуры сторонам. Проверить ошибки ввода и вывести сообщение об ошибке.

    Ошибка: нулевые и отрицательные значения.

    Определить и вывести на экран название дня недели по введенному номеру, если число >7 или <1, писать «некорректный номер дня»





    4,20

    Вычислить значение x= a+b/с+d

    a , b, с, d – целые числа, х – вещественное, a , b, с, d ввести с клавиатуры. Проверить ошибки ввода и вывести сообщение об ошибке.

    Ошибка: деление на ноль

    Вводить различные символы до тех пор, пока не введен «ENTER». При вводе символа "{" или "}" выводить сообщение "фигурная скобка", при вводе "[" или"]" - "квадратная скобка"; при вводе "(" или ")" - "круглая скобка", в остальных случаях - сообщение "не скобка". Для решения задачи можно использовать таблицу кодов ASCII



    5,21

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

    Вводить числа, пока не будет введен ноль. Определять количество цифр в числе, выводить надпись «одна цифра», «две цифры» и т.п.


    6,22

    Для целого числа k от 1 до 130 вывести фразу «Мне k лет», учитывая при этом, что при некоторых значениях k слово «лет» надо заменить словом «год» или «года»

    По введенному числу (от 3 до 8) определить название фигуры: треугольник, квадрат, пятиугольник и т.д., если число < 3 или >8 писать «неизвестная фигура»


    7,23

    Вычислить значение x= 1/(a+b)

    a , b – целые числа, х – вещественное, a , b ввести с клавиатуры

    Реализовать контроль ошибки ввода, вывод сообщения об ошибке и повторный ввод данных. Ошибка: a+b=0

    Ввести с клавиатуры номер месяца и вывести сообщение о номере квартала. Программа должна проверять правильность исходных данных.

    Выйти из программы при вводе 999.


    8,24

    Для целого числа d от 1 до 1000, обозначающего денежную единицу, дописать слово «рубль» в правильной форме.

    Вводить с клавиатуры различные символы и выводить слова: "цифра",

    если введена цифра; "латинская буква" если введена латинская буква, все остальные случаи считать ошибкой ввода. Для решения задачи можно использовать таблицу кодов ASCII


    9,25

    Вычислить значение x= a /с+b

    a , b, с – целые числа, х – вещественное, a , b и с ввести с клавиатуры. Реализовать контроль ошибки ввода, вывод сообщения об ошибке и повторный ввод данных. Ошибка: деление на ноль

    Реализовать «калькулятор». При вводе с клавиатуры символа:

    + вывести сообщение "сложение",

     вывести сообщение "вычитание",

    * вывести сообщение "умножение",

     вывести сообщение "деление"

    с указанием формулы и примера с конкретными значениями, введенными с клавиатуры. Программа должна проверять правильность исходных данных при выполнении команды "деление".


    10,26

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

    Составить программу, которая при вводе символа "{" или "}" выводит сообщение "фигурная скобка";. при вводе "[" или"]" - "квадратная скобка"; при вводе "(" или ")" - "круглая скобка"; в остальных случаях - сообщение "не скобка". Для решения задачи использовать таблицу кодов ASCII





    11,27

    Вычислить значение x= a/b+с/d

    a , b, с, d – целые числа, х – вещественное.

    a , b, с, d ввести с клавиатуры. Реализовать контроль ошибки ввода, вывод сообщения об ошибке и повторный ввод данных. Ошибка: b=0, d=0

    Написать программу, которая запрашивает у пользователя

    номер месяца и выдает на экран сообщение о времени года и названии введенного месяца. Например: 1 - январь, зима. Программа должна проверять правильность исходных данных и выводить сообщение об ошибке.



    12,28

    Для целого числа d от 1 до 1000, обозначающего денежную единицу, дописать слово «копейка» в правильной форме.

    Написать программу, которая запрашивает у пользователя номер дня недели и выводит одно из сообщений: "Рабочий день", "Суббота" или "Воскресенье". Программа должна проверять правильность исходных данных и выводить сообщение об ошибке.


    13,29

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

    Ввести координаты точки x, y. Определить какой координатной четверти принадлежит данная точка. Вывести надпись «первая четверть», «вторая четверть» и т.п.


    14,30

    Подсчитать площадь цилиндра по введенным с клавиатуры радиусу и высоте. Реализовать контроль ошибки ввода, вывод сообщения об ошибке и повторный ввод данных. Ошибка: нулевые и отрицательные значения.

    Ввести число от 2 до 5, вывести оценку в виде слова: 5 - отлично, 4 - хорошо, 3 - удовлетворительно, 2 – неудовлетворительно. Программа должна проверять правильность исходных данных и выводить сообщение об ошибке.


    15,31

    Поле шахматной доски определено парой натуральных чисел (значения от 0 до 8). Ввести координаты 2-х полей k,l и m,n.

    Определить являются ли они полями одного цвета.

    Ввести числа a, b, c, определить, возможно ли построить треугольника со сторонами a, b, c? Реализовать контроль ошибки ввода, вывод сообщения об ошибке и повторный ввод данных.

    Ошибка: нулевые и отрицательные значения.



    16,32

    Вычислить значение x= (1+a)/b

    a , b – целые числа, х – вещественное, a , b ввести с клавиатуры. Реализовать контроль ошибки ввода, вывод сообщения об ошибке и повторный ввод данных. Ошибка: b=0

    Дано трехзначное число a. Определить, составляют ли цифры числа возрастающую последовательность.
    1   2   3


    написать администратору сайта