- •Т.Э. Шульга основы программирования на языке с
- •1. Структура программы на языке с
- •Задание 1. Вывод строки на экран с использованием esp-последовательности
- •2. Переменные. Основные типы данных
- •Задание 2. Описание переменных и преобразование типов
- •3. Ввод – вывод значений переменных
- •Задание 3. Форматирование вывода
- •4. Основные операции языка с
- •5. Конструкции выбора
- •Заданиe 4. Простейшие вычисления
- •Задание 5. Обработка введенного символа
- •Задание 6. Вычисление значения функции
- •Задание 7. Применение разветвляющихся алгоритмов при решении простейших задач
- •Задание 8. Mультиветвление
Заданиe 4. Простейшие вычисления
Каждому студенту рекомендуется выполнить хотя бы одно из упражнений 1–12.
Вычислить целую часть среднего арифметического и среднего геометрического трех вещественных чисел.
Вычислить длину окружности и площадь круга с заданным радиусом R, а также длину дуги окружности в n.
Вычислить периметр и площадь прямоугольного треугольника по двум заданным катетам.
По длинам гипотенузы и катета прямоугольного треугольника определить длину второго катета и площадь треугольника.
По длинам двух сторон треугольника и углу (в градусах) между ними найти площадь треугольника и параллелограмма, построенного на этих сторонах, а также по две высоты треугольника и параллелограмма, опущенные на заданные стороны.
По заданным координатам (x1,y1), (x2,y2), (x3,y3) вершин треугольника найти его площадь:
.
По трем заданным ребрам прямоугольного параллелепипеда найти его объем и диагональ.
По заданной высоте правильной пирамиды и стороне треугольника, лежащего в ее основании, найти ее объем.
По заданному радиусу найти площадь поверхности и объем шара.
По трем заданным сторонам треугольника a ,b, c найти высоту, опущенную на сторону a:
По трем заданным сторонам треугольника a ,b, c найти радиус вписанного в него круга:
.
По трем заданным сторонам треугольника a ,b, c найти радиус описанного вокруг него круга:
.
5. Конструкции выбора
К конструкциям выбора в С относят условную конструкцию if и переключатель switch.
Синтаксис условной конструкции:
if (выражение) оператор1;
if (выражение) оператор1; else оператор2;
Выражение должно быть скалярным и иметь арифметический тип или тип указателя. В операторе if оператор1 выполняется в том случае, если выражение ненулевое, иначе выполняется оператор2 или не выполняются никакие действия, если оператор2 не задан, то есть отсутствует else. В частности, если a целое, то if (a) эквивалентно if (a != 0).
Часто используются в условиях логические операции &&, ||, !. Операции && и || не будут вычислять второй аргумент, если это не нужно. Например, if (p && r) … вначале проверяет, является ли p не нулем, и только, если это так, то проверяет r.
Некоторые простые операторы if могут быть с удобством заменены выражениями арифметического if. Например,
if (a <= b) max = b;
else max = a;
лучше выражается так: max = (a<=b) ? b : a;
В качестве операторов нельзя использовать описания, но можно использовать блоки, в которых, в частности, могут быть включены описания.
Пример 1. Напишите программу, которая вычисляет и выводит на экран значение
y=
.
#include <stdio.h>
void main()
{
double x,y;
printf( "\nEnter x: ");
scanf ("%f", &x);
if ((x>0)||(x<-1)) y=1/x;
else y=x;
printf("\ny=%f",y);
}
Операторы в конструкции if в свою очередь могут быть условными, что позволяет организовывать цепочку проверок условий любой вложенности. Синтаксис языка предполагает, что при вложенных условиях операторов каждое else соответствует ближайшему к нему предшествующему if.
Пример 2. Используя вложенные уловные операторы, найти максимум из трех целых чисел.
#include <stdio.h>
void main()
{
int x,y,z, max;
printf("Enter x,y,z: ");
scanf("%d%d%d",&x, &y,&z);
if (x<y)
if (y<z) max=z;
else max=y;
else
if (x<z) max=z;
else max=x;
printf("\nMax= %d", max);
}
В тексте соответствие if и else показано с помощью отступов.
Переключатель является наиболее удобным средством для организации мультиветвления. Синтаксис переключателя:
switch (перключающее_выражение)
{case константное_выражение1: оператор1;
case константное_выражение2: оператор2;
. . .
case константное_выражениеn: операторn;
default:оператор;
}
Управляющая конструкция switch передает управление к тому из помеченных с помощью case операторов, для которого значение константного выражения совпадает со значением переключающего выражения. Переключающее_выражение должно быть целочисленным или его значение должно приводится к целочисленному. В одном переключателе все константные_выражения должны иметь различные значения, но быть одного типа. Любой из операторов может быть помечен одной или несколькими метками вида case константное_выражение: , например, может использовать конструкция вида
case константное_выражение1: case константное_выражение2: оператор;
Если значение переключающего_выражения не совпадает ни с одним из константных_выражений, то выполняется переход к оператору, отмеченному меткой default, которая может и отсутствовать (при этом не выполняются никакие действия). Если не предусмотрены переходы и выходы из переключателя, то в нем последовательно выполняются все операторы, начиная с той метки, на которую передано управление. Для выхода из переключателя обычно используют оператор break.
Пример 3. Напишите программу, запрашивающую ввод с клавиатуры любой десятичной цифры и выводящую на экран названия нечетных десятичных цифр, не меньше заданной. Если была введена не цифра, то выдается сообщение об ошибке.
#include <stdio.h>
void main()
{
char i;
printf("Enter number: ");
scanf ("%c",i);
printf("\n");
switch (i)
{
case '0': case '1': printf("one, ");
case '2': case '3': printf("three, ");
case '4': case '5': printf("five, ");
case '6': case '7': printf("seven, ");
case '8': case '9': printf("nine"); break;//производим выход
// из переключателя
default: printf("\nIt's not number");
}
}
Если, например, на клавиатуре будет введена цифра 4, то в результате выполнения программы на экран выведется: five, seven, nine.
Каждому студенту рекомендуется выполнить хотя бы одно из упражнений 1–12 заданий 1,2,3,4.
