Лабораторная работа №1
.docМинистерство образования РФ
Санкт-Петербургский государственный электротехнический университет
“ЛЭТИ”
Кафедра Вычислительной Техники
Лабораторная работа №1
По дисциплине «Программирование»
«Изучение условных операторов и циклов в языке Си»
Выполнил: Власюк А. В.
Преподаватель:
Сискович Т. И.
Факультет: КТИ
Группа: 3371
Санкт-Петербург
2003
Цель работы:
Введение в язык Си, изучение условных операторов и циклических вычислительных процессов в языке Си.
Задание на лабораторную работу:
Написать программу, которая многократно по желанию пользователя выполняет следующие действия:
-
Ввод координат точки.
-
Ввод координат заданной области (рис. 1).
-
Проверку на попадание точки в заданную область.
Y
y=x
a
a
X
рис.1
Контрольный пример:
№ |
x |
y |
a |
Результат |
1 |
1 |
1 |
2 |
на границе |
2 |
3 |
2 |
3 |
в области |
3 |
-2 |
2 |
3 |
в области |
4 |
4 |
6 |
5 |
вне области |
5 |
-5 |
5 |
5 |
на границе |
6 |
6 |
3 |
9 |
вне области |
7 |
-3 |
-6 |
7 |
вне области |
8 |
5 |
-4 |
3 |
вне области |
9 |
5 |
5 |
7 |
на границе |
10 |
-3 |
2 |
3 |
на границе |
Описание данных:
Переменная |
тип |
Описание |
x |
float |
Абсцисса точки |
y |
float |
Ордината точки |
a |
float |
Величина,задающая размер области(квадрата) во втором квадранте |
s |
char |
Символ управления циклом |
Текст программы:
#include<conio.h>
#include<stdio.h>
void main (void)
{
clrscr();
float x,y,a;
char s;
printf(" ________________________________________________ \n ");
printf(" | Вас приветствует программа, |\n ");
printf(" | предназначенная |\n ");
printf(" |для определения принадлежности к области точки |\n ");
printf(" |________________________________________________|\n ");
getch();
clrscr();
do
{
do
{
printf("\nВведите значение A (A>0):\n ");
printf("A= ");
scanf("%f",&a);
if(a<=0)
{printf("\n ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,");
printf("\n | Внимание! Ошибка! |");
printf("\n | (Нажмите любую клавишу для продолжения) |");
printf("\n ''''''''''''''''''''''''''''''''''''''''''''''''''''''");
printf("\07");
getch();
clrscr();
}
}
while(a<=0);
do
{
printf("\nВведите координаты точки:\n");
printf(" X=");
scanf("%f",&x);
printf(" Y=");
scanf("%f",&y);
if (((x==-a||x==0)&&y<=a&&y>=0)||((y==0||y==a)&&x<=0&&x>=-a)||(x>=0&&x>=y&&y>=0&&(x==y||y==0)))
printf("Точка лежит на границе области.\n");
else
if ((x>-a&&y<a&&x<0&&y>0)||(x>y&&y>0))
printf("Точка принадлежит данной области.\n");
else
printf("Точка не принадлежит данной области.\n");
printf("\n ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ");
printf("\n | Изменить значения координаты точки? (y/n)| ");
printf("\n '''''''''''''''''''''''''''''''''''''''''''' ");
s=getche();
clrscr();
}
while(s=='y'||s=='Y');
printf("\n \n\n\n\n\n\n");
printf("\n ,,,,,,,,,,,,,,,,,,,,,,,,,,");
printf("\n |Продолжить работу?(y/n) |");
printf("\n ''''''''''''''''''''''''''");
s=getche();
printf("\n \n");
clrscr();
}
while(s=='y'||s=='Y');
printf("\n \n\n\n\n\n");
printf("\n ___________ ");
printf("\n | Спасибо! |");
printf("\n |___________|");
printf("\n \n\n\n\n\n\n\n\n\n\n\n");
printf(" Sasha company 2003 год.");
getch();
}
Результаты решения задачи:
Все полученные ответы совпадают с контрольными примерами.
Выводы:
Данная лабораторная работа позволяет овладеть основами языка Си. В ходе выполнения работы были усвоены условные операторы, циклы и методы их использования в программах.
нет
Пояснения:
Сообщение *: Внимание!Ошибка!(Нажмите любую клавишу для продолжения)
Условие 1:((x==-a||x==0)&&y<=a&&y>=0)||((y==0||y==a)&&x<=0&&x>=
=-a)||(x>=0&&x>=y&&y>=0&&(x==y||y==0))
Условие 2:(x>-a&&y<a&&x<0&&y>0)||(x>y&&y>0)
Условие 3: Изменить значения координаты точки? (y/n)
Условие 4: Продолжить работу?(y/n)
нет нет да нет да нет да да да нет да Вас
приветствует программа ,
предназначенная для
определения принадлежности
точки к областиБлок-схема: