
- •2. Общие рекомендации к выполнению и требования к оформлению контрольной работы
- •3. Темы заданий для выполнения контрольной работы
- •4. 1. Базовые средства языка
- •Алфавит языка
- •Ключевые слова языка
- •Идентификаторы
- •Комментарии
- •4.1.5. Типы данных Си
- •Логический тип
- •4.1.8. Операции и выражения
- •Операции присваивания
- •Арифметические операции
- •Логические операции
- •Операции отношения
- •Условная операция
- •Операция преобразования типа
- •Операция определения размера
- •4.1.9. Стандартные функции
- •4.1.10. Структура программы
- •4.1.11. Ввод и вывод данных
- •Функции ввода- вывода
- •Объектно-ориентированные средства ввода-вывода.
- •4.2. Операторы управления
- •4.2.1. Понятие алгоритма
- •4.2.2. Изображение алгоритма в виде блок-схемы
- •2.3. Составной оператор
- •2.4. Операторы ветвления
- •If (выражение) оператор;
- •4.2.5. Примеры программ
- •4.2.6. Оператор варианта
- •4.2.7. Алгоритмы циклической структуры
- •Оператор цикла с предусловием
- •Оператор цикла с постусловием
- •Оператор цикла с параметром
- •Операторы передачи управления
- •4.2.8. Решение задач с использованием циклов
- •4.3. Обработка массивов
- •4.3.1. Описание массивов
- •4.3.2. Основные операции над массивами
- •4.3.3. Ввод-вывод элементов массива
- •4.3.4. Вычисление суммы элементов массива
- •4.3.5. Вычисление произведения элементов массива
- •4.3.6. Поиск максимального элемента и его номера
- •4.3.7. Сортировка элементов в массиве
- •4.3.8. Удаление элемента из массива
- •4.3.9. Решение задач с использованием массивов
- •4.4. Обработка матриц
- •4.4.1. Ввод-вывод матрицы
- •4.4.2. Примеры алгоритмов обработки матрицами
- •4.5.1. Передача параметров в функцию
- •4.5.2. Возврат результата с помощью оператора return
- •4.6. Указатели и динамические массивы
- •4.6.2. Операции * и & при работе с указателями
- •4.6.3. Операция присваивания указателей
- •4.6.4. Арифметические операции над адресами
- •4.6.5. Динамические массивы
- •4.6.6. Использование указателей в качестве аргументов функций
- •Литература
4.2.5. Примеры программ
ЗАДАЧА 4. Известны коэффициенты а, b и с квадратного уравнения ax2+bx+c=0. Вычислить корни квадратного уравнения.
Входные данные: a, b, c.
Выходные данные: х1, х2.
Алгоритм решения задачи в виде блок-схемы представлен на рис. 6.
Рис. 6. Алгоритм решения квадратного уравнения
#include <stdio.h>
#include <math.h>
void main()
{
float a,b,c,d,x1,x2;
printf("\n vvedite a \n"); scanf("%f",&a);
printf("\n vvedite b \n"); scanf("%f",&b);
printf("\n vvedite c \n"); scanf("%f",&c);
d=b*b-4*a*c;
if (d<0) printf("reshenij net \n");
else
{
x1=(-b+sqrt(d))/2/a; x2=(-b-sqrt(d))/2/a;
printf("x1=%f \n", x1); printf("x2=%f \n", x2);
}
}
ЗАДАЧА 5. Дано вещественное число x. Для функции, график которой приведен на рис. 7, вычислить y=f(x).
Рис. 7. Графическое представление задачи 5
Постановка задачи:
Алгоритм решения задачи 5 представлен на рис. 8.
Рис. 8. Блок-схема решения задачи 5
#include <iostream.h>
#include <math.h>
int main()
{
float x,y;
cout<<"x="; cin>>x;
if (x<=1) y=1;
else if (x>1) y=2;
else y=fabs(x);
cout<<"\n x="<<x<<"\t y="<<y;
}
4.2.6. Оператор варианта
Оператор switch (переключатель) предназначен для разветвления процесса вычислений на несколько направлений:
switch (выражение)
{
case значение_1: Операторы_1; break;
case значение_2: Операторы_2; break;
…
[default: Операторы; break;]
}
Выполнение оператора начинается с вычисления выражения. Значение выражения должно быть целочисленным. Затем управление передается первому оператору из списка, значение которого совпало с вычисленным.
Если выражение=значение_1, то выполняются операторы_1. Если выражение =значение_2, то выполняются операторы_2 и т .д.
Если выражение не принимает ни одно из имеющихся значений из списка, то выполняются операторы, указанные после оператора default. Ветвь default может отсутствовать.
ЗАДАЧА 6. Вывести на печать название дня недели, соответствующее заданному числу D, при условии, что в месяце 31 день и 1-е число – понедельник.
Если остаток от деления заданного числа D на семь равен единице, то это понедельник, двойке – вторник, тройке – среда и так далее. Выражение D % 7 может принимать только одно из значений: 1, 2, 3, 4, 5, 6 или 0. В записи оператора варианта ветвь default будет отсутствовать.
int main()
{unsigned int d;
cout<<"d="; cin>>d;
switch (d%7)
{
case 1: cout<<"Monday";break;
case 2: cout<<"Tuesday";break;
case 3: cout<<"Wednesday";break;
case 4: cout<<"Thursday";break;
case 5: cout<<"Friday";break;
case 6: cout<<"Суббота";break;
case 0: cout<<"Sunday";break;
}
}
4.2.7. Алгоритмы циклической структуры
Циклический процесс или просто цикл это повторение одних и тех же действий. Последовательность действий, которые повторяются в цикле, называют телом цикла. Один проход цикла называют шагом или итерацией. Переменные, которые изменяются внутри цикла, и влияют на его окончание, называются параметрами цикла.
Оператор цикла с предусловием
Алгоритм работы цикла с предусловием показан на рис. 9.
Рис. 9. Цикл с предусловием
Оператор, реализующий этот алгоритм в С++ имеет вид:
while (выражение) оператор;
Работает цикл так. Вычисляется значение выражения. Если оно истинно (0), выполняется оператор. В противном случае цикл заканчивается, и управление передается оператору, следующему циклом. Выражение вычисляется перед каждой итерацией цикла. Если при первой проверке выражение = 0, цикл не выполнится ни разу. Если тело цикла состоит более чем из одного оператора, используют составной оператор:
while условие
{
оператор 1;
…
оператор n;
}
ЗАДАЧА 7. Вывести на экран таблицу значений функции y=esin(x)cos(x) на отрезке [0;] с шагом 0.1.
#define PI 3.14159
int main()
{float x=0, y;
while (x<=PI) //Цикл с предусловием.
{y=exp(sin(x))*cos(x);
cout<<x<<"\t"<<y;
x+=0.1;
} //Конец цикла.
}