- •1. Основные этапы решения задач на эвм
- •Формулировка задачи
- •Математическая постановка задачи
- •Разработка алгоритма решения задачи
- •Написание текста программы на языке программирования
- •Ввод текста программы в эвм
- •Поиск и устранение синтаксических ошибок
- •Тестирование программы. Поиск и устранение логических ошибок в программе
- •Этапы создания исполняемой программы
- •Базовые компоненты программ
- •Буквы и цифры
- •Пробельные символы
- •Знаки пунктуации и специальные символы
- •Идентификаторы
- •Ключевые слова
- •Комментарии
- •Лексемы
- •Типы данных
- •Целые константы
- •Константы с плавающей точкой
- •Константа-символ
- •Строковые литералы
- •Универсальные функции ввода и вывода любых типов данных
- •Структуры и форма написания программы
- •Программирование разветвляющихся вычислительных процессов
- •Цикл while – цикл с предусловием.
- •Цикл do while – цикл с постусловием
- •Цикл for
- •Безусловная передача управления внутри цикла
- •Описание некоторых стандартов алгоритмов
- •Работа с файлами (функции ввода вывода верхнего уровня)
- •Указатели
- •Одномерные массивы Объявление массива.
- •Стандартные функции обработки строк
- •Многомерные массивы на примере двумерных
- •Классы памяти
- •Способы передачи данных в функцию
- •Функции и строки
- •Функции и одномерные числовые массивы
- •Функции и двумерные массивы
- •Функции с параметрами по умолчанию
- •Перегрузка функции
- •Шаблоны функции
- •Типы данных, определяемые пользователем
- •4.1. Структуры
- •Шаблон структуры
- •Структурные переменные
- •Инициализация структуры
- •Доступ к полям структуры
- •Массив структур
- •Вложенные структуры
- •Битовые поля структур
- •Передача структуры в функцию
- •Двоичный ввод-вывод структур
- •Функции двоичного ввода-вывода
- •Динамические структуры данных
- •4.2. Объединения
- •4.3. Перечисления
- •Файловые операции ввода/вывода
- •Файловый ввод/вывод с прямым доступом
Цикл while – цикл с предусловием.
Условия цикла проверяется перед самим циклом.
Синтаксис: while (выражение)
один оператор или блок.
Если выражение истинно, выполняется тело цикла, иначе цикл прерывается.
Пример:
1. Вычислить сумму натуральных чисел от одного до ста.
i=1;
sum=0;
while(i<=100)
{
sum+=i;
i++;
}
2. Вывести на экран ASCII код введенного символа до тех пор, пока не нажата q.
char sim;
sim=’a’;
while(sim!=’q’)
{
cin>>sim;
cout<<(int)sim<<", "<<sim<<endl;
}
Цикл do while – цикл с постусловием
Условие проверяется после выполнения цикла один раз.
Синтаксис: do
один оператор или блок
while(выражение);
Примеры:
do
{
cout<<"Ввести стороны треугольника ";
cin>>a>>b>>c;
}
while(!(a+b>c&&a+c>b&&c=b>a));
do
{
................
................
cout<<"Продолжить?(Yes-да,…) ";
}
while(getch()!=27);
Цикл for
Рекомендуется применять, когда известно количество повторений цикла.
Синтаксис: for (инициализация; условие цикла; коррекция)
Цикл выполняется:
а) один раз до начала цикла выполняется инициализация – один или несколько операторов разделенных запятой.
б) если условие цикла истинно, выполняется пункт 3, если ложно цикл прекращается.
в) выполняется тело цикла.
г) выполняется коррекция – один оператор или несколько, разделенные запятой.
д) выполнение пункта б.
Любая из трех частей заголовка может отсутствовать но ; писать обязательно.
Примеры:
1. for (i=0; i<10; i++) //повтор 10 раз
cout<<“Это тело цикла”;
2. for(i=10; i>0; i--)
cout<<“Осталось ” <<i<<” секунд”;
3. for(cout<<“\nСчет десятками\n”, i=10; i<101; i+=10)
cout<<i<<endl;
4. for (i=0; i<10; i++)
{
…………………..
…………………..
}
Безусловная передача управления внутри цикла
Выполнение каждых из этих операторов вызывает скачкообразные изменения выполнения вычислительного процесса. Частое использование этих операторов ухудшает читаемость программы, увеличивает вероятность ошибки и затрудняет ее модификацию.
break – применяется внутри оператора switch и циклах и прерывает их выполнение. Использование оператора break предоставляет возможность проверки особого условия окончания цикла.
Пример:
Определить является ли простым натуральное число N.
#include<iostream> //подключение системных средств для
using namespace std; //возможности использовать потоки ввода-вывода
int main(void) //имя функции main
{
int n, i;
cout<< "Введите число: ";
cin>>n;
for (i=2; i<n; i++)
if (n%i= =0)
break;
if (i= =n)
cout<<"\nЧисло простое";
else
cout<<"\nЧисло не простое";
return 0;
}
continue – применяется внутри тела цикла и приводит к выполнению следующей итерации, оставшаяся часть текущей итерации пропускается. Оператор continue в цикле применяется всегда в составе условного оператора, также как и break.
Пример:
Вычислить среднее арифметическое положительных чисел из n – введенных чисел.
#include<iostream> //подключение системных средств для
using namespace std; //возможности использовать потоки ввода-вывода
int main(void) //имя функции main
{
int n, i, current, sum, kol;
cout<<"Ввести количество чисел ";
cin>>n;
cout<<"Ввести числа по одному ";
for (i=1, sum=0, kol=0; i<n+1; i++)
{
cin>>current;
if (current<=0)
continue;
sum+=current;
kol++;
}
if (kol)
cout<<"\nСреднее арифметическое=",(double)sum/kol<<endl;
else
cout<<"Положительных чисел нет"<<endl;
return 0;
}
goto используется для передачи управления внутри одной функции от одного оператора к другому, помеченному меткой. Метка формируется как имя переменной, т.е. метка начинается с буквы и может содержать в себе буквы цифры и некоторые знаки.
Синтаксис: Не входить внутрь блока из вне, не входить внутрь условных операторов и не входить внутрь цикла из вне.
goto m1;
.............
m1:
.............
.............
Пример:
for (i=0; i<50; i++)
for (j=5; j<70; j+=5)
{
if (условие ошибочной ситуации)
goto m1:
.............
.............
}
............
............
m1:
puts (“Сообщение об ошибке”);