- •4. 1. Базовые средства языка
- •Алфавит языка
- •4.1.5. Типы данных Си
- •Логический тип
- •4.1.8. Операции и выражения
- •Операции присваивания
- •Арифметические операции
- •Логические операции
- •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. Указатели и динамические массивы
- •5. Примеры организации вычислительного процесса
- •5.1 Организация разветвляющегося вычислительного процесса
- •5.2. Организация циклов с известным числом повторений»
- •Блок-схема
- •Текст программы
- •Блок-схема
- •Текст программы
- •5.4.Обработки одномерного массива с перестановкой элементов
- •5.5. Обработка матрицы.
- •Литература
Операторы передачи управления
Операторы передачи управления принудительно изменяют порядок выполнения команд.
Оператор goto метка, применяют для безусловного перехода, он передает управление оператору5: метка: оператор;
Оператор break осуществляет немедленный выход из циклов while, do…while, for и из оператора выбора switch. Управление передается оператору, находящемуся непосредственно за циклом или оператором выбора.
Оператор continue начинает новую итерацию цикла, даже если предыдущая не была завершена.
Оператор return выражение завершает выполнение функции и передает управление в точку ее вызова.
4.2.8. Решение задач с использованием циклов
ЗАДАЧА 10. Составить таблицу значений функции y=esin(x)cos(x) на отрезке [xn;xk] с шагом dx. Найти сумму положительных значений y и произведение отрицательных y.
Входные данные: xn, xk,dx.
Выходные данные: множество значений x и y, S – сумма положительных значений y и P – произведение отрицательных значений y.
Блок-схема алгоритма решения задачи на рис. 13.
Рис. 13. Алгоритм решения задачи 10
Текст программы c соответствующими комментариями приведен далее.
#include <stdio.h>
#include <math.h>
int main()
{
//Описание всех переменных
float xn, xk, dx, x, y, s, p;
printf("Введите xn,xk,dx");
scanf("%f%f%f",&xn,&xk,&dx);
for(s=0,p=1,x=xn;x<=xk;x+=dx)
{
y=exp(sin(x))*cos(x);
printf("X=%g\tY=%g\n",x,y);
if (y<0) p*=y;
else s+=y;
}
printf("S=%g\tP=%g\n",s,p);
}
ЗАДАЧА 11. Вычислить значения z, которые соответствуют каждому значению х (x = 1; dx = 0.5) по формуле:
.
Считать z до тех пор, пока подкоренное выражение больше или равно 0.02. Определить k — количество вычисленных z.
Входные данные: xn, dx.
Выходные данные: множество значений x и y, k – количество выполненных итераций цикла.
Блок-схема алгоритма на рис. 14. Текст программы, соответствующий б/с алгоритма приведен далее.
Рис. 14. Алгоритм решения задачи 11
#include<stdio.h>
#include<math.h>
void main()
{
float x,dx,z; int k=0;
printf("x="); scanf("%f",&x);
printf("dx="); scanf("%f",&dx);
while (x/(x*x*x+1)>0.02)
{
z=log(x)*sqrt(x/(x*x*x+1));
printf("\n x=%f \t z=%f \n",x,z);
k++;
x=x+dx;
}
printf("\n k=%d",k);
}
4.3. Обработка массивов
Массив – структурированный тип данных, состоящий из фиксированного числа элементов одного типа.
Простой или одномерный массив это список данных одного и того же типа. Порядковый номер элемента массива называют индексом. Для доступа к данным, хранящимся в определенном элементе массива, необходимо указать имя массива и индекс этого элемента.
4.3.1. Описание массивов
Описать массив можно так:
тип имя_переменной [размерность];
где размерность это количество элементов в массиве. Например:
int х[10]; float a[20];
Размерность массива и тип его элементов определяют объем памяти, который необходим для хранения массива. Следовательно, размерность это целое положительное константное выражение. Например,
const int n=15;.
double B[n];
Элементы массива в С++ нумеруются с нуля (первый элемент, всегда имеет номер ноль, а номер последнего элемента на единицу меньше заданной при его описании размерности):
//Описан массив из 5 символов, нумерация от 0 до 4:
char C[5];