ЛАБОРАТОРНАЯ РАБОТА 5. ОРГАНИЗАЦИЯ СТРУКТУРЫ ПРОГРАММЫ. ОПЕРАТОРЫ УПРАВЛЕНИЯ ВЫЧИСЛИТЕЛЬНЫМ ПРОЦЕССОМ.


ЦЕЛЬ РАБОТЫ: Ознакомиться со структурой программы на языке  Си, с правилами оформления текста программы. Научиться составлять алгоритмы задач с использованием операторов ветвления, цикла  и  множественного выбора.

  1. Порядок выполнения работы.

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 );

}

ИНДИВИДУАЛЬНЫЕ ЗАДАНИЯ.

  1. Составить программу для печати символов кода ASCII в виде таб-

лицы 16 х 16.Верхняя строка и нижний столбец — шестнадцатерич-

ные цифры.

  1. Составить программу организующую диалог с пользователем в ви-

де и выполняющую по выбору пользователя одну из операций:

— вывод значения sin введенного аргумента

— вывод числа X в степени Y для введенных X и Y (тип int)

— вывод значения exp введенного аргумента

  1. Составить программу для распечатки таблицы умножения в  виде

таблицы 10 х 10. Верхняя строка и левый столбец — числа  от  1

до 10.

  1. Составить программу для вычисления корней квадратного уравне-

ния.

  1. Составить программу для решения системы двух линейных уравнений

с двумя неизвестными.

  1. Вводятся аргументы для функции Y= a*a + 4*b — 2*c. В зависимости

от значений Y выводятся сообщения `Y<0` `Y>0` `Y=0` и само Y.

  1. Составить программу определяющую, является ли введенное число

M (M<139) простым. Для этого надо проверить делится ли оно на-

цело на какое-либо из чисел 1,2,3,5,7,11… sqrt(M).

  1. Составить программу, для которой вводится массив чисел и выво-

дится их среднее арифметическое и дисперсия.

  1. Составить программу в которой вводится массив вещественных чи-

сел и проводится сортировка массива одним из известных методов.

10.Составить программу для  которой  вводятся  координаты  левого

верхнего и правого нижнего углов и символ которая рисует  рам-

ку этим символом по координатам углов.

  1. Составить программу для подсчета частоты появления буквы а в

введенной строке текста. Окончание ввода строки — Enter.

12.Составить программу для подсчета частоты появления букв латин-

ского алфавита в введенной строке символов.  Oкончание  строки

-Enter. Другие символы игнорировать.

13.Составить программу, для которой  вводятся  координаты  левого

верхнего и правого нижнего углов и которая очищает область эк-

рана по этим координатам.

  1. Содержание отчета.
  1. Описать работу программы 2 при удалении строк А1, А2, А3.
  2. Составить блок-схему программы 2.
  3. Текст программы индивидуального задания.
  1. Вопросы по лабораторной работе:

1.Описать программу 1.

2.Описать программу 2.

3.Оператор for. Синтаксис  и  примеры  его  применения  в

программах.

4.Оператор if. Синтаксис  и  примеры  его  применения  в

программах.

5.Оператор switch. Синтаксис  и  примеры  его  применения  в

программах.

6.Оператор goto и метки. Синтаксис  и  примеры  его  применения  в

программах.

ПРИЛОЖЕHИЕ.

  1. Порядок выполнения оператора if

if(<условное  выражение>) <оператор 1> [else <оператор 2>]

1.1. Вычисляется <условное выражение>. Если оно истинно то выпол-

няется <оператор 1>, если <условное выражение> не истинно и  если

есть else то <оператор 2>, если else нет, то не выполняется ниче-

го.

  1. Порядок выполнения оператора switch

switch(<выражение>) {

case <константное выражение 1> :<оператор 1>

[break;]

[case <константное выражение 2> :<оператор 2>]

[default :<оператор 3>]

}

2.1. Вычисляется  <выражение>.  Cравнивается  последовательно   с

<константными выражениями>. Если равенство имеет место, то выпол-

няется   <оператор>,    соответствующие    этому    <константному

выражению>. Если нет, то выполняется оператор после default.

Примечание: оператор break  прекращает  выполнение  определенного

case. Если его нет то далее выполняются операторы  для  следующих

case.

  1. Порядок выполнения оператора цикла for

for(<инициализация>;<условие>;<коррекция>)

<оператор>

3.1. Вычисляется <инициализация>.

3.2. Проверяется <условие>.Если оно истинно то выполняются  <опе-

раторы>, выполняется <коррекция> и далее п. 3.2.

Если <условие> ложно то цикл прекращается.

Примечание: Если встречается оператор continue  то  сразу  вычис-

ляется <коррекция> и оставшиеся до конца цикла операторы  не  вы-

полняются. Если встречается оператор break, то  выполнение  цикла

немедленно прекращается.

  1. Оператор goto <метка>

При выполнении этого оператора управление  немедленно  передается

на <метку>.Метка — идентификатор оператора, заканчивающийся двое-

точием.

  1. Функции

Это именованная совокупность объявлений и операторов  языка  С++,

рассматриваемая как единое целое. При использовании функций необ-

ходимо:

  1. создать функцию
  2. объявить функцию
  3. вызвать функцию

Создание функции:

<тип результата><имя функции>(<тип аргумента>[<идентификатор  ар-

гумента>,…])

{ [<объявление внутренних идентификаторов>]

[<операторы>]

[return <возвращаемое значение>]

}

Объявление функции:

<тип результата><имя функции>(<тип аргумента>[,<тип аргумента>,

…]);

Вызов функции:

[<переменная> = ] <имя функции>([<аргументы>]);