ЦЕЛЬ РАБОТЫ: Ознакомиться со структурой программы на языке Си, с правилами оформления текста программы. Научиться составлять алгоритмы задач с использованием операторов ветвления, цикла и множественного выбора.
- Порядок выполнения работы.
1.1. Выполнить пpогpамму 1.
1.2. Выполнить пpогpамму 2. Удалить строки, помеченные A1 и
A2. Объяснить разницу в работе программы.
Изменить программу так, чтобы она при выборе `с` не выдава-
ла сообщения ` введенный символ не a,b или c`.
Изменить программу так, чтобы сообщение «Да, вы ввели сим-
вол __ с кодом __ » выдавалось всегда.
Удалить строку, помеченную A3. Объяснить разницу в работе
программы.
// пример программы с операторами for, break, if, else.
/* Программа 1 */
#include <conio.h>
#include <stdio.h>
void main(void)
{
int i,x;
for (i=0;i<9;i++)
{
clrscr(); // очистка экрана
x = getche(); //ввод 1 символа с клавиатуры с эхо-отображением
if (x==’q’)
{
printf(«\nВыход»);
break; // прервать цикл for
}
if (x==’a’) // конструкция if … else…
printf(«\nУра! Bведена буква \»a\»»);
else
printf(«\nНе ура…»);
}
getch(); //ввод 1 символа с клавиатуры без эхо-отображения
}
//пример программы с операторами switch, case, break, default,
вызов функций
/* Программа 2 */
#include <conio.h>
#include <stdio.h>
void yes(int); // объявляется прототип функции yes
void main(void)
{
int x;
for(;;)
{ clrscr();
x = getche();
switch(x){ // оператор множественного выбора
case ‘a’:
printf(» CASE a\n»);
yes(x); // вызывается функция yes
break; // А1
case ‘b’:
printf(» CASE b\n»);
break; // А2
case ‘c’:
printf(» CASE c\n»);
default:
printf(» введенный символ не a,b или c\n»);
break;
}
getch();
if(x==’q’) break; // А3
}
}
void yes(int simvol) // создание функция yes
{
gotoxy(10,10);
cprintf(«Да, вы ввели символ %c с кодом %i»,simvol,simvol );
}
ИНДИВИДУАЛЬНЫЕ ЗАДАНИЯ.
- Составить программу для печати символов кода ASCII в виде таб-
лицы 16 х 16.Верхняя строка и нижний столбец — шестнадцатерич-
ные цифры.
- Составить программу организующую диалог с пользователем в ви-
де и выполняющую по выбору пользователя одну из операций:
— вывод значения sin введенного аргумента
— вывод числа X в степени Y для введенных X и Y (тип int)
— вывод значения exp введенного аргумента
- Составить программу для распечатки таблицы умножения в виде
таблицы 10 х 10. Верхняя строка и левый столбец — числа от 1
до 10.
- Составить программу для вычисления корней квадратного уравне-
ния.
- Составить программу для решения системы двух линейных уравнений
с двумя неизвестными.
- Вводятся аргументы для функции Y= a*a + 4*b — 2*c. В зависимости
от значений Y выводятся сообщения `Y<0` `Y>0` `Y=0` и само Y.
- Составить программу определяющую, является ли введенное число
M (M<139) простым. Для этого надо проверить делится ли оно на-
цело на какое-либо из чисел 1,2,3,5,7,11… sqrt(M).
- Составить программу, для которой вводится массив чисел и выво-
дится их среднее арифметическое и дисперсия.
- Составить программу в которой вводится массив вещественных чи-
сел и проводится сортировка массива одним из известных методов.
10.Составить программу для которой вводятся координаты левого
верхнего и правого нижнего углов и символ которая рисует рам-
ку этим символом по координатам углов.
- Составить программу для подсчета частоты появления буквы а в
введенной строке текста. Окончание ввода строки — Enter.
12.Составить программу для подсчета частоты появления букв латин-
ского алфавита в введенной строке символов. Oкончание строки
-Enter. Другие символы игнорировать.
13.Составить программу, для которой вводятся координаты левого
верхнего и правого нижнего углов и которая очищает область эк-
рана по этим координатам.
- Содержание отчета.
- Описать работу программы 2 при удалении строк А1, А2, А3.
- Составить блок-схему программы 2.
- Текст программы индивидуального задания.
- Вопросы по лабораторной работе:
1.Описать программу 1.
2.Описать программу 2.
3.Оператор for. Синтаксис и примеры его применения в
программах.
4.Оператор if. Синтаксис и примеры его применения в
программах.
5.Оператор switch. Синтаксис и примеры его применения в
программах.
6.Оператор goto и метки. Синтаксис и примеры его применения в
программах.
ПРИЛОЖЕHИЕ.
- Порядок выполнения оператора if
if(<условное выражение>) <оператор 1> [else <оператор 2>]
1.1. Вычисляется <условное выражение>. Если оно истинно то выпол-
няется <оператор 1>, если <условное выражение> не истинно и если
есть else то <оператор 2>, если else нет, то не выполняется ниче-
го.
- Порядок выполнения оператора switch
switch(<выражение>) {
case <константное выражение 1> :<оператор 1>
[break;]
[case <константное выражение 2> :<оператор 2>]
[default :<оператор 3>]
}
2.1. Вычисляется <выражение>. Cравнивается последовательно с
<константными выражениями>. Если равенство имеет место, то выпол-
няется <оператор>, соответствующие этому <константному
выражению>. Если нет, то выполняется оператор после default.
Примечание: оператор break прекращает выполнение определенного
case. Если его нет то далее выполняются операторы для следующих
case.
- Порядок выполнения оператора цикла for
for(<инициализация>;<условие>;<коррекция>)
<оператор>
3.1. Вычисляется <инициализация>.
3.2. Проверяется <условие>.Если оно истинно то выполняются <опе-
раторы>, выполняется <коррекция> и далее п. 3.2.
Если <условие> ложно то цикл прекращается.
Примечание: Если встречается оператор continue то сразу вычис-
ляется <коррекция> и оставшиеся до конца цикла операторы не вы-
полняются. Если встречается оператор break, то выполнение цикла
немедленно прекращается.
- Оператор goto <метка>
При выполнении этого оператора управление немедленно передается
на <метку>.Метка — идентификатор оператора, заканчивающийся двое-
точием.
- Функции
Это именованная совокупность объявлений и операторов языка С++,
рассматриваемая как единое целое. При использовании функций необ-
ходимо:
- создать функцию
- объявить функцию
- вызвать функцию
Создание функции:
<тип результата><имя функции>(<тип аргумента>[<идентификатор ар-
гумента>,…])
{ [<объявление внутренних идентификаторов>]
[<операторы>]
[return <возвращаемое значение>]
}
Объявление функции:
<тип результата><имя функции>(<тип аргумента>[,<тип аргумента>,
…]);
Вызов функции:
[<переменная> = ] <имя функции>([<аргументы>]);
