Разработка алгоритма решения
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой
Первым шагом алгоритма должен быть ввод координат точки: x и y. Для большего удобства при анализе результатов можно вывести введенные значения на экран. Исследование изображения на рисунке-задании дает основание утверждать, что целевая область образуется пересечением: прямой с коэффициентом –1 и смещением +1 и окружности с центром в начале координат и радиусом 1, как показано на рисунке справа · Уравнениеэтойпрямой: y= – x+1; · Уравнениеокружности: x2+y2=1;  

Для проверки попадания точки в заданную область нужно проверить условия того, что:

1) Точка лежит выше прямой или на ней, т.е.: y>= – x+1

2) Точка лежит внутри окружности или на ней, т.е.: x2+y2<=1

Точка лежит в области, если выполняются оба условия, если же не выполняется хотя бы одно из них, точка лежит вне области. Следовательно, эти условия должны быть объединены логической операцией "И".

Схема алгоритма приведена на рисунке ниже.

Определение переменных программы

Для реализации алгоритма будут нужны только переменные для хранения значений координат x и y. В условиях задания не приведены требования к точности вычислений, рисунок представлен с довольно невысокой точностью, поэтому для этих переменных было бы достаточно типа float. Но в соответствии с общим стилем программирования на C выберем для них тип double.

Разработка текста программы

Текст программы начинается с включения фала:

#include <stdio.h>

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

Далее идет заголовок и открытие главной функции:

int main(void) {

и объявление переменных, определенных в пункте 5.2.

double x, y;

Для каждой координаты выводится приглашение на ее ввод и вводится ее значение: printf("Введите координату x >"); scanf("%lf",&x); printf("Введите координату y >"); scanf("%lf",&y); Введенные значения координат выводятся на экран: printf("x=%6.3lf; y=%6.3lf\n",x,y); Далее идет проверка условий попадания точки в область. Оба условия проверяются одним выражением. Поскольку точка попадает в область, если выполняются оба условия вместе, условия в выражении соединены операцией "логическое И": if ( (y>=1–x)&& (x*x+y*y<=1) ) Если значение логического выражения в условном операторе истинно, то выводится сообщение про попадание: printf("Точка попадает в область\n"); В противном случае выводится сообщение про попадание: else printf("Точка не попадает в область \n");

Полный текст программы приведен ниже.

#include <stdio.h>

int main(void)

{ double x , y ; /* координати точки */

printf("Введите координату x >"); /* ввод координат */

scanf("%lf",&x);

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

scanf("%lf",&y);

/* вывод толькочто введеных значений */

printf("x=%6.3lf; y=%6.3lf\n",x,y);

/* проверка условий */

if ( (y>=1–x) && (x*x+y*y<=1) )

printf("Точка попадает в область\n");

else printf("Точка не попадает в область\n");

return 0; }.

Отладка программы

Самое важное в отладке этой программы — убедиться в том, что программа выдает правильные результаты при разных комбинациях входных данных. Следовательно, необходимо подобрать такие комбинации, которые были бы показательными для разных случаев размещения точки. предлагаем такие комбинации:

1) точка лежит ниже области (0.4, 0.4);
2) точка лежит на нижней границе области (0.5, 0.5);
3) точка лежитвсередине области (0.7, 0.6);
4) точка лежит на верхней границе области (0.707, 0.707);
5) точка лежит више области (0.8, 0.8);
6) точка лежит на правом крае области (1.0, 0.0);
7) точка лежит на левом крае области (0.0, 1.0).


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

Операторы цикла в языке C

1. Цель работы

2. Темы для предварительной проработки

3. Задание

4. Варианты индивидуальных заданий

5. Пример решения задачи

5.1. Разработка алгоритма решения

5.2. Определение переменных программы

5.3. Разработка текста программы

5.4. Отладка программы

Цель работы

Целью лабораторной работы является получение практических навыков в работе с операторами цикла языка C.

2. Темы для предварительной проработки

· Операторы циклаязыка C.

Задание

Изобразите блок-схему алгоритма и напишите программу на языке Си. В алгоритме и программе массивы не использовать!!!!!!!!!!!!!!! Предусмотрите ввод исходных данных с экрана дисплея.

Варианты индивидуальных заданий

Вариант Задания
1 В последовательностиизN произвольных чисел определить сумму положительных элементов, если сумма цифр элемента кратна трём.
2 Определить сколько раз последовательность из N произвольных чисел меняет знак. Совет. Произведение двух чисел с разными знаками — отрицательное число.
3 Определить является ли число L совершенным. Совершенное число L равно сумме всех своих делителей, не превосходящих L. Например, 6=1+2+3 или 28=1+2+4+7+14.
4 В последовательности из N произвольных чиселподсчитать количество нулей иопределить сумму элементов, размещенных между первым ивторым нулями.
5 В последовательностииз N натуральных чисел определить количество простых чисел.
6 Дано натуральное число Р. Определить количествочётных цифр в нем.
7 Вводитсяпоследовательность ненулевых чисел, 0 — конец последовательности. Определить сумму простых чисел.
8 Определитьколичество простых делителей натурального числа М.
9 Вводитсяпоследовательность ненулевых чисел, 0 — конец последовательности. Определить, содержит липоследовательностьхотя бы два соседних числа з одинаковыми знаками. Совет. Произведение двух чисел з одинаковыми знаками — положительное число.
10 Дано натуральное число Р. Определить сумму цифр чётных разрядов числа.
11 Вводитсяпоследовательность ненулевых чисел, 0 — конец последовательности. Определить разницу между максимальным и минимальным числом в последовательности, которыеявляются простыми числами.
12 В последовательностииз N произвольных чисел найти номер первого отрицательногоэлемента последовательности, сумма цифр которогоявляетсячетным числом.
13 Дано натуральное число Р. Определить, больше ли сумма чётных цифр этого числа чем заданное произвольное значение M.
14 В последовательностииз N произвольных чисел определить, сколько членов последовательностипревышаютпо модулю заданное число M.
15 В последовательностииз N произвольных чисел подсчитать произведение простых чисел, которые не превышают число M.

 

16 Дано натуральное число Р. Определить, является ли сумма его цифр простым числом.
17 Вводитсяпоследовательность ненулевых чисел, 0 — конец последовательности. Определить два наибольшых числа в последовательности.
18 Дано натуральное число Р. Определить все простые числа, не перевищующие Р.
19 В последовательности з N произвольных чисел найти пары соседних элементов с суммою, котораяпо модулю равна заданному числу M.
20 Вводитсяпоследовательность ненулевых чисел, 0 — конец последовательности. Определитьявляется липоследовательность строго убывающей.
21 Найти количество трёхзначных чисел, сумма цифр которыхравна M, а само число оканчивается цифрой N.
22 Вводится последовательность ненулевых чисел, 0 — конец последовательности. Определить является ли последовательность строго возрастающей.
23 Вычислитьсумму отрицательныхэлементовпоследовательностииз N произвольных чисел, если перваяипоследняя цифра элемента одинаковы.
24 Дано натуральное число Р. Определитьколичество нечётных цифр в нём.
25 В последовательностииз N произвольных чисел найти сумму  всех положительных чисел, превышающих заданное произвольное значение M.
26 В последовательностииз N произвольных чисел найти номера тих элементов, значення которых кратны 3 и не превышают заданное произвольно значение M. При отсутствии вывести соответствующее сообщение.
27 Дано натуральное число Р. Определить является ли оно симметричним.
28 Вводитсяпоследовательностьненулевых чисел, 0 — конец последовательности. Найти сумму всех положительных чисел, количествоотрицательных чисел.
29 В последовательностиизN произвольных чисел определить сумму наибольшего и наименьшего элементов, которые являются двузначными симметричними числами.
30 Дано натуральное число Р. Определить, встречается ли заданная цифра M больше чем 2раза.
31 Вводитсяпоследовательностьненулевых чисел,0— конец последовательности. Вычислитьсумму натуральных чётных чисел, не превышающих заданное произвольное значениеM.
32 Вводитсяпоследовательностьненулевых чисел,0— конец последовательности. Вычислитьсумму чисел, не превышающих Mи не являющихся простыми.
33 Вводитсяпоследовательностьненулевых чисел,0— конец последовательности. Вычислитьсумму натуральных нечётных чисел, що не превышающих заданное произвольное значение M.
34 Дано натуральное число Р. Определить, равна ли сумма цифр этого числа заданному произвольному значению M.
35 ВводитсяпоследовательностьизМэлементов. Каждый элементпоследовательности — цифра, т.е. находится в диапазонеот 0 до 9. Сформировать числоN,считая, что первый элементпоследовательности является младшим разрядом. Например, дана последовательность5, 4, 3, 2, 1, тогда десятичное число формируется следующим образом: 5+4 10+3 100+2 1000+1 10000=12345.
36 Вводитсяпоследовательностьненулевых чисел, 0 — конец последовательности. Определить наименьшее положительное число, являющееся также простым.
37 Дано натуральное число Р. Определитьколичество цифр данного числа, превышающих M.
38 Вводитсяпоследовательностьненулевых чисел,0— конец последовательности. Вычислитьсумму простых чисел, не превышающих заданное произвольное значение M.
39 В последовательностиизNпроизвольных чисел определитьколичество пар элементовпоследовательности, имеющих однаковые знаки.
40 Дано натуральное число Р. Перевернуть число вобратном направлении.

5. Пример решения задачи

Для ряда, членыкотороговычисляются по формуле

подсчитать сумму членов ряда с точностью до 0.000001 и сумму первых 10 членов ряда.


Дата: 2018-12-21, просмотров: 358.