Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа №11

.doc
Скачиваний:
10
Добавлен:
01.05.2014
Размер:
86.53 Кб
Скачать

Министерство Образования РФ

Санкт- Петербургский государственный

электротехнический университет “ЛЭТИ”

ФКТИ

Кафедра ВТ

Отчет по лабораторной работе №1

“Условные операторы и циклы в языке Си”

По дисциплине “Программирование”

Выполнил:

студент группы 3371,

Артемьев Ю.Г

Проверил:

Сискович Т.И.

Санкт – Петербург

2003

Цель работы:

Изучение условных операторов и циклов в языке Си.

Задание:

Написать программу, которая многократно по желанию пользователя выполняет ввод координат точки и определяет, попадает ли точка в указанную область, находится вне области или на ее границе.

Заданная область:

Контрольные примеры:

Исходные данные

Результат

Исходные данные

Результат

( 3; 3 ) а=3

Точка входит в заданную область

( -6; -2 ) а=2

Точка не входит в заданную область

( 2; 4 ) а=5

Точка входит в заданную область

( 0; 0 ) а=4

Точка лежит на границе области

( -3; 3 ) а=3

Точка лежит на границе области

( -1; 2 ) а=3

Точка входит в заданную область

( 2; 4 ) а=5

Точка не входит в заданную область

( 1; 2 ) а=3

Точка не входит в заданную область

( 4; -2 ) а=2

Точка не входит в заданную область

( 2; -1 ) а=2

Точка лежит на границе области

Описание данных:

Имя переменной

Тип переменной

Назначение

iX

int

абсцисса точки

iY

int

ордината точки

iA

int

параметр

ucC

unsigned char

Символ, управляющий циклом ввода парам. а

ucD

unsigned char

Символ, управляющий циклом выполн. всей прогр.

Текст программы:

#include "stdio.h"

#include "conio.h"

void main(void)

{

int iX, iY, iA;

unsigned char ucC;

unsigned char ucD;

do

{

clrscr();

printf( "\n****************************************************************\n" );

printf( "\t Добро пожаловать в программу, позволяющую вычислять,\n\t попадает ли точка в указанную область\n" );

printf( "****************************************************************\n\n" );

printf( "\n Введите абсциссу точки x " );

scanf( "%d", &iX );

printf( "\n Введите ординату точки y " );

scanf( "%d", &iY );

do //Цикл на изменение парам а.

{

do

{

printf( "\nВведите положительный параметр а " );

scanf( "%d", &iA );

if( iA < 0)

{

printf( "\tВы ввели неккоректное значиние параметра а\n\tНажмите любую клавишу...\n" );

getch();

}

}

while( iA < 0 ); //Цикл на ввод положительного параметра а.

if( iX <= iA && iX >= -iY && iY <= 0 || iX < 0 && iY <= iA && iX >= -iY )

{

if(iX == 0 && iY >= 0 && iY <= iA || iY == iA && iX <=0 && iX == -iA || iY == 0 && iX >= 0 && iX <= iA || iX == iA && iY <= 0 && iY >= -iA || iX == -iY && iX <= iA && iX >= -iA )

printf("\n Точка лежит на границе области");

else

printf("\n Точка входит в заданную область");

}

else

printf("\n Точка не входит в заданную область");

printf( "\n Хотите изменить параметр а (Да/нет)?" );

ucC = getch();

}

while( ucC == 'Д' || ucC == 'д' );

printf("\n Хотите продолжить программу или выйти Да/нет?");

ucD = getch();

}

while( ucD == 'Д' || ucD == 'д' ); //Цикл на выполнение всей программы

}

Результат решения задачи:

При многократном вводе координат точки и переменной результаты совпали с контрольными примерами.

Заключение:

При выполнении поставленной задачи получены практические навыки в использовании условных операторов и циклов в языке Си.

Блок схема алгоритма: