Лабораторная работа №11
.doc
Министерство Образования РФ
Санкт- Петербургский государственный
электротехнический университет “ЛЭТИ”
ФКТИ
Кафедра ВТ
Отчет по лабораторной работе №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 == 'д' ); //Цикл на выполнение всей программы
}
Результат решения задачи:
При многократном вводе координат точки и переменной результаты совпали с контрольными примерами.
Заключение:
При выполнении поставленной задачи получены практические навыки в использовании условных операторов и циклов в языке Си.
Блок схема алгоритма: