Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб. работа 3(ОАиП).doc
Скачиваний:
21
Добавлен:
11.07.2019
Размер:
610.3 Кб
Скачать

Задача 4.4

Даны действительные числа x, y. Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости.

Блок-схема:

0

Да

1

2

3

5

Нет

Таблица соответствия переменных:

Переменные в задаче

Переменные на языке Си

Тип

Комментарий

x

x

float

исходное данное

y

y

float

исходное данное

Листинг программы:

#include <stdio.h>

#include <math.h>

main()

{

float x,y;

puts("Введите координаты точки А(x,y)\n");

scanf("%f%f", &x,&y);

if(x*x+y*y<=1)

{printf("Точка А лежит в плоскости");

}

else

{

printf("Точка А не лежит в плоскости ");

}

fflush(stdin);

getchar();

return(0);

}

Тесты:

тест №

значение

результат вычисления

результат выполнения программы

x

y

Точка А находится

1

0,5

0,5

в плоскости

в плоскости

2

3

2

не в плоскости

не в плоскости

Тесты показали, что программа работает правильно.

Задание 4.5

Даны координаты (как целые от 1 до 8) двух различных полей шахматной доски. Если ладья за один ход может перейти с одного поля на другое, вывести логическое значение True, в противном случае вывести значение False.

Блок-схема:

Да Нет

да нет

Таблица соответствия переменных:

Переменные в задаче

Переменные на языке Си

Тип

Комментарий

x

x

int

исходное данное

y

y

int

исходное данное

X0

a

int

исходное данное

Y0

b

int

исходное данное

Листинг программы:

#include <stdio.h>

#include <math.h>

main()

{

int x,y,a,b;

puts("Введите координаты нахождения ладьи");

scanf("%d%d", &a,&b);

puts("Введите координаты клетки, куда должна перейти ладья за один ход");

scanf("%d%d", &x,&y);

if(a<=0||a>8||b<=0||b>8||x<=0||x>8||y<=0||y>8)

{puts("Введены неправильные координаты");}

else

if(a==x||b==y)

{puts("True");}

else

{puts("false");}

fflush(stdin);

getchar();

return(0);

}

Тесты:

тест №

значение

результат вычисления

результат выполнения программы

x

y

X0

Y0

1

1

1

5

6

false

false

2

1

1

1

8

True

True

3

1

1

1

10

Не правильные координаты

Не правильные координаты

Тесты показали, что программа работает правильно.

Задание 4.6

задача:

Дан номер некоторого года (положительное целое число). Вывести число дней в этом году, учитывая, что обычный год насчитывает 365 дней, а високосный — 366 дней. Високосным считается год, делящийся на 4, за исключением тех годов, которые делятся на 100 и не делятся на 400 (например, годы 300, 1300 и 1900 не являются високосными, а 1200 и 2000 — являются).

Блок-схема:

да нет

да нет

Таблица соответствия переменных:

Переменные в задаче

Переменные на языке Си

Тип

Комментарий

a

a

int

исходное данное

Листинг программы:

#include <stdio.h>

#include <math.h>

main()

{int a;

printf("Введите год\n");

scanf("%d",&a);

if(a%4!=0)

{puts("В этом году 365 дней");}

else

if(a%100==0&&a%400!=0)

{puts("В этом году 365 дней");}

else

{puts("В этом году 366 дней");}

fflush(stdin);

getchar();

return(0);

}

Тесты:

тест №

значение a

Число дней

Число дней (программа)

1

2007

365

365

2

2000

366

366

3

1300

365

365

Тесты показали, что программа работает правильно.

4.7

задача:

Единицы массы пронумерованы следующим образом: 1 — килограмм, 2 — миллиграмм, 3 — грамм, 4 — тонна, 5 — центнер. Дан номер единицы массы и масса тела M в этих единицах (вещественное число). Вывести массу данного тела в килограммах.

блок-схема:

к1 к2 к3 к4 к5 другое

m

m/1000

m/1000000

m*1000

m*100

не правильно

Таблица соответствия переменных:

Переменные в задаче

Переменные на языке Си

Тип

Комментарий

k

k

int

исходное данное

m

m

float

Листинг программы:

#include <stdio.h>

#include <math.h>

main()

{

int k;

puts("Введите единицу массы\n");

scanf("%d", &k);

float m;

puts("Введите массу");

scanf("%f", &m);

printf("масса в кг. равна:\n");

switch(k)

{

case 1: {m=m; printf("m=%f", m);}

break;

case 2: {m=m/1000; printf("m=%f", m);}

break;

case 3: {m=m/1000000; printf("m=f", m);}

break;

case 4: {m=m*1000; printf("m=%f", m);}

break;

case 5: {m=m*100; printf("m=% f ", m);}

break;

default: puts("неверное значение единицы массы");

}

fflush(stdin);

getchar();

return(0);

}

Тесты:

тест №

значение m

значение k

Масса в кг.

Масса в кг. (программа)

1

10

1

10

10

2

100

2

0,1

0,1

3

1

3

0,000001

0,000001

4

10

4

10000

10000

5

10

5

1000

1000

6

10

6

Не правильно

Не правильно

Тесты показали, что программа работает правильно.

Вывод: Я изучил операции отношения, логические операции, правила записи логических отношений, правила записи и использования операторов if; научиться составлять разветвляющиеся алгоритмы и оформлять их в виде графической схемы, составлять, тестировать и отлаживать в среде IDE разветвляющиеся программы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]