ОП_Лабораторная работа №1. Изучение базовых понятий программирования и технологии создания программ. Программирование ветвящихся
Скачать 278.73 Kb.
|
Ввод данных с клавиатуры и вывод на экран дисплея Пример 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; } Вопросы. В чем различие между константой и переменной? Приведите примеры объявления констант и переменных. Как изменить значение константы? Дайте определение термину "инициализация переменной" Перечислите стандартные типы данных языка Си. Перечислите основные характеристики стандартных типов данных. Какой тип данных нужно использовать для записи стоимости товара (в рублях и копейках)? Какова структура программы на языке Си? Что такое препроцессор? Какие функции выполняет директива #include. Какие функции выполняет директива #define Какие этапы трансляции Вы знаете? Какие операторы позволяют организовать ветвление программы? Что такое «логическое выражение»? Какие операции отношений вы знаете? Для чего нужны логические связки? Какие логические связки вы знаете? Нарисуйте в виде блок-схемы две формы условного оператора. Приведите примеры использования тернарного оператора. Что общего у операторов if и switch? Какие различия между операторами if и switch?
|