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

алгоритмизация

.pdf
Скачиваний:
12
Добавлен:
22.05.2015
Размер:
259.18 Кб
Скачать

Вам предлагается решить пять задач: Задачи №1, 2, … , 5. В каждой из этих задач имеется задание, которое нужно уточнить путем выбора из таблицы строки, соответствующей Вашему номеру варианта.

Поскольку в задачах имеется различное число вариантов, для каждой задачи Вам необходимо вычислить номер Вашего варианта по формуле:

x = ( a mod n ) + 1,

где a – числовая часть номера Вашей зачетной книжки, n – общее число вариантов задачи, a mod n – остаток от целочисленного деления a на n.

Например, если студент имеет зачетную книжку № ДА42113, то для него a = 42113 и он должен решить:

задачи № 1, №2 и №4, в каждой из которых n = 30, под вариантом x = (42113 mod 30) + 1 = 23 + 1 = 24;

задачу №3 (n = 26), варианта (42113 mod 26) + 1 = 19 + 1 = 20;

задачу №5 (n = 15), варианта (42113 mod 15) + 1 = 8 + 1 = 9.

Задача № 1 СОСТАВЛЕНИЕ ЛОГИЧЕСКИХ ВЫРАЖЕНИЙ

Цель. Знакомство с правилами составления логических выражений. Задание. Составить логическое выражение, принимающее значение «истина», если заданное в табл. 1 высказывание является истинным, и значение «ложь» - в противном случае. Используя полученное логическое выражение разработать алгоритм и представить его в виде блоксхемы и программы для ЭВМ на алгоритмическом языке C. Провести

полное тестирование программы.

 

Таблица 1

Высказывание

варианта

 

 

 

1

Сумма двух первых цифр заданного четырехзначного нату-

 

рального числа N равна сумме двух его последних цифр.

2

Сумма цифр данного трехзначного натурального числа N

 

является четным числом.

3

Точка с координатами (х, у) принадлежит части плоскости,

 

лежащей между прямыми х = m и х = n (m < n).

4

Заданное трехзначное натуральное число N равно кубу

 

суммы цифр этого числа.

5

Натуральное число N является четным двузначным числом.

6

Треугольник со сторонами а, b, с является равносторонним.

7

Треугольник со сторонами a, b, с является равнобедренным.

1

8

Среди чисел а, b, с есть хотя бы одна пара взаимно проти-

 

воположных чисел.

9

Числа а и b выражают длины катетов одного прямоуголь-

 

ного треугольника, а с и d – другого. Эти треугольники яв-

 

ляются подобными.

10

Даны три стороны одного и три стороны другого треуголь-

 

ника. Эти треугольники равновеликие, т.е. имеют равные

 

площади.

11

Данная тройка натуральных чисел а, b, с является тройкой

 

Пифагора, т.е. c2 = a2 + b2.

12

Все цифры данного четырехзначного числа N различны.

13

Данные числа х и у являются координатами точки, лежащей

 

в первой координатной четверти.

14

(x1, y1) и (х2, y2) – координаты левой верхней и правой

 

нижней вершин прямоугольника. Точка А(х, у) принадле-

 

жит прямоугольнику.

15

Число с является средним арифметическим чисел а и b.

16

Натуральное число N является точным квадратом.

17

Цифры данного четырехзначного числа N образуют строго

 

возрастающую последовательность.

18

Цифры данного трехзначного числа N являются членами

 

арифметической прогрессии.

19

Цифры данного трехзначного числа N являются членами

 

геометрической прогрессии.

20

Данные числа b и c являются соответственно квадратом и

 

кубом числа а.

21

Цифра М входит в десятичную запись четырехзначного

 

натурального числа N.

22

Данное четырехзначное число читается одинаково слева

 

направо и справа налево.

23

Шахматный конь за один ход может переместиться с одно-

 

го заданного поля на другое (каждое поле задано двумя ко-

 

ординатами – целыми числами от 1 до 8).

24

В заданном натуральном трехзначном числе N имеется чет-

 

ная цифра.

25

Сумма каких-либо двух цифр заданного трехзначного нату-

 

рального числа N равна третьей цифре.

26

Заданное число N является степенью числа а (показатель

 

степени может находиться в диапазоне от 0 до 4).

27

Сумма цифр заданного четырехзначного числа N превосхо-

 

дит произведение цифр этого же числа на 1.

2

28Сумма двух последних цифр заданного трехзначного числа N меньше заданного числа K, а первая цифра больше 5.

29Заданное натуральное число N является двузначным и кратно числу K.

30Сумма двух первых цифр заданного четырехзначного числа N равна произведению двух последних.

Пример №1

Высказывание. X – отрицательное целое число, делящееся на K нацело.

Решение.

Логическая переменная x1 = «X – отрицательное» и логическая переменная x2 = «X делится на K нацело»

Тестовая таблица

X

K

x1

x2

x1 и x2

7

3

0

0

0

8

2

0

1

0

-9

4

1

0

0

-12

6

1

1

1

Программа logic1.c

#include<stdio.h>

#include<conio.h> void main()

{

int X,K; int x1,x2;

printf("X,K=");

scanf("%d%d",&X,&K);

x1=(X<0);

x2=(X%K==0); if (x1 && x2)

printf("true\n"); else printf("false\n"); while(!kbhit());

}

3

Пример №2

Высказывание. Среди заданных чисел A, B, C, D есть хотя бы два четных.

Решение.

Логические переменные x1 = «A – четное», x2 = «B – четное», x3 = «C – четное», x4 = «D – четное».

Тестовая таблица

A

 

B

 

 

C

 

D

 

 

x1

x2

 

 

x3

x4

 

 

Ответ

1

 

3

 

 

5

 

7

 

 

 

0

 

0

 

 

0

0

 

 

 

0

1

 

3

 

 

5

 

8

 

 

 

0

 

0

 

 

0

1

 

 

 

0

1

 

3

 

 

6

 

7

 

 

 

0

 

0

 

 

1

0

 

 

 

0

1

 

3

 

 

6

 

8

 

 

 

0

 

0

 

 

1

1

 

 

 

1

1

 

4

 

 

5

 

7

 

 

 

0

 

1

 

 

0

0

 

 

 

0

1

 

4

 

 

5

 

8

 

 

 

0

 

1

 

 

0

1

 

 

 

1

1

 

4

 

 

6

 

7

 

 

 

0

 

1

 

 

1

0

 

 

 

1

1

 

4

 

 

6

 

8

 

 

 

0

 

1

 

 

1

1

 

 

 

1

2

 

3

 

 

5

 

7

 

 

 

1

 

0

 

 

0

0

 

 

 

0

2

 

3

 

 

5

 

8

 

 

 

1

 

0

 

 

0

1

 

 

 

1

2

 

3

 

 

6

 

7

 

 

 

1

 

0

 

 

1

0

 

 

 

1

2

 

3

 

 

6

 

8

 

 

 

1

 

0

 

 

1

1

 

 

 

1

2

 

4

 

 

5

 

7

 

 

 

1

 

1

 

 

0

0

 

 

 

1

2

 

4

 

 

5

 

8

 

 

 

1

 

1

 

 

0

1

 

 

 

1

2

 

4

 

 

6

 

7

 

 

 

1

 

1

 

 

1

0

 

 

 

1

2

 

4

 

 

6

 

8

 

 

 

1

 

1

 

 

1

1

 

 

 

1

 

 

 

 

 

 

 

 

Гиперкуб размерности 4

 

 

 

 

 

 

 

 

 

 

 

 

Максимальные единичные интервалы

 

 

 

 

 

 

 

 

 

 

 

11--, 1-1-, 1--1, -11-, -1-1, --11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Импликантная таблица

 

 

 

 

 

 

 

Макс.

 

 

 

 

 

 

 

 

 

Конституента

 

 

 

 

 

 

 

ед.

 

0011

0101

0110

 

0111

1001

 

1010

1011

1100

1101

1110

1111

 

инт.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

11--

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

1

 

1

b

1-1-

 

 

 

 

 

 

 

 

 

 

 

1

1

 

 

1

 

1

c

1--1

 

 

 

 

 

 

 

 

 

1

 

 

1

 

1

 

 

 

1

d

-11-

 

 

 

 

1

 

1

 

 

 

 

 

 

 

 

1

 

1

e

-1-1

 

 

 

1

 

 

 

1

 

 

 

 

 

 

 

1

 

 

 

1

f

--11

 

1

 

 

 

 

 

1

 

 

 

 

1

 

 

 

 

 

1

f & e & d & (d e f) & c

4

Логическое выражение Программа logic2.c

#include<stdio.h>

#include<conio.h> void main()

{

int A,B,C,D;

int x1,x2,x3,x4; printf("A,B,C,D="); scanf("%d%d%d%d",&A,&B,&C,&D); x1=(A%2==0);

x2=(B%2==0);

x3=(C%2==0);

x4=(D%2==0);

if(x1&&x2||x1&&x3||x1&&x4||

x2&&x3||x2&&x4||x3&&x4)

printf("true\n"); else printf("false\n"); while(!kbhit());

}

Задача № 2

ВЕТВЛЕНИЯ В АЛГОРИТМАХ

Цель. Знакомство с организацией ветвлений в алгоритме.

Задание. Разработать алгоритм решения задачи, приведенной в табл. 2. Алгоритм представить его в виде блок-схемы и программы для ЭВМ на алгоритмическом языке С. Провести полное тестирование программы.

Таблица 2

Задание

варианта

1Даны три действительных числа. Возвести в квадрат те из них, значения которых неотрицательны, и в четвертую степень – отрицательные.

2Даны две точки А(х1, у1) и В(х2, у2). Составить алгоритм, определяющий, которая из точек находится ближе к началу координат.

5

3

Даны два угла треугольника (в градусах). Определить, су-

 

ществует ли такой треугольник, и если да, то будет ли он

 

прямоугольным.

4

Даны действительные числа х и у, не равные друг другу.

 

Меньшее из этих двух чисел заменить половиной их сум-

 

мы, а большее – их удвоенным произведением.

5

На плоскости ХОY задана своими координатами точка А.

 

Указать, где она расположена (на какой оси или в каком

 

координатном угле).

6

Даны целые числа m, n. Если числа не равны, то заменить

 

каждое из них одним и тем же числом, равным большему из

 

исходных, а если равны, то заменить числа нулями.

7

Подсчитать количество отрицательных среди чисел а, b, с.

8

Подсчитать количество положительных среди чисел а, b, с.

9

Подсчитать количество целых среди чисел а, b, с.

10

Определить, делителем каких чисел а, b, с является число k.

11

Услуги телефонной сети оплачиваются по следующему

 

правилу: за разговоры до А минут в месяц — В руб., а раз-

 

говоры сверх установленной нормы оплачиваются из рас-

 

чета С руб. за минуту. Написать программу, вычисляющую

 

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

 

разговоров за месяц.

12

Программа — льстец. На экране высвечивается вопрос

 

«Кто ты: мальчик или девочка? Введи Д или М». В зависи-

 

мости от ответа на экране должен появиться текст «Мне

 

нравятся девочки!» или «Мне нравятся мальчики!».

13

Грузовой автомобиль выехал из одного города в другой со

 

скоростью v1 км/ч. Через t ч в этом же направлении выехал

 

легковой автомобиль со скоростью v2 км/ч. Составить про-

 

грамму, определяющую, догонит ли легковой автомобиль

 

грузовой через t1 ч после своего выезда.

14

Перераспределить значения переменных х и у так, чтобы в х

 

оказалось большее из этих значений, а в у – меньшее.

15

Определить правильность даты, введенной с клавиатуры

 

(число — от 1 до 31, месяц — от 1 до 12). Если введены

 

некорректные данные, то сообщить об этом.

16

Составить программу, определяющую результат гадания на

 

ромашке — «любит—не любит», взяв за исходное данное

 

количество лепестков n.

17

Написать программу — модель анализа пожарного датчика

 

в помещении, которая выводит сообщение «Пожароопасная

 

ситуация», если температура в комнате превысила 60° С.

6

18

Рис расфасован в два пакета. Масса первого — m кг, второ-

 

го – n кг. Составить программу, определяющую: а) какой

 

пакет тяжелее — первый или второй; б) массу более тяже-

 

лого пакета.

19

Написать программу, которая анализирует данные о воз-

 

расте и относит человека к одной из четырех групп: школь-

 

ник, студент, работник, пенсионер. Возраст вводится с кла-

 

виатуры.

20

Составить программу, определяющую, пройдет ли график

 

функции у = ах2 + + с через заданную точку с координа-

 

тами (m, n).

21

К финалу конкурса лучшего по профессии «Специалист

 

электронного офиса» были допущены трое: Иванов, Пет-

 

ров, Сидоров. Соревнования проходили в три тура. Иванов

 

в первом туре набрал m1 баллов, во втором – n1, в третьем

 

р1. Петров – m2, n2, р2 соответственно; Сидоров – m3, n3,

 

р3. Составить программу, определяющую, сколько баллов

 

набрал победитель.

22

Написать программу-фильтр, которая при нажатии любых

 

клавиш выводит на экран только буквы и цифры, при этом

 

указывая, что выводится: буква или цифра.

 

 

23

Написать программу нахождения суммы большего и мень-

 

шего из трех чисел.

24

Написать программу, по длинам сторон распознающую

 

среди всех треугольников ABC прямоугольные. Если тако-

 

вых нет, то вычислить величину угла С.

25

Найти max{min(a, b), min(c, d)}.

26

Даны три числа а, b, с. Определить, какое из них равно d.

 

Если ни одно не равно d, то найти max(d а, d b, d с).

27

Даны четыре точки А1(х1, у1), А2(x2, у2), А3(x3 , у3), А4(х4,

 

у4). Определить, будут ли они выступать в качестве вершин

 

параллелограмма.

28

Даны три точки А(х1, у1), B(х2, у2), и C(х3, у3). Определить,

 

будут ли они расположены на одной прямой. Если нет, то

 

вычислить площадь треугольника ABC.

29

Даны действительные числа а, b, с. Удвоить эти числа, если

 

а b с, и заменить их абсолютными значениями, если это

 

не так.

30

На оси ОХ расположены три точки а, b, с. Определить, ка-

 

кая из точек b или с расположена ближе к а.

7

Пример №1

Задание. Даны три положительных числа а, b, с. Проверить, могут ли они обозначать длины сторон треугольника. Если да, то вычислить площадь этого треугольника.

Решение.

Логическая переменная x = «а, b, с – длины сторон треугольника».

Тестовая таблица

a

b

c

x

Площадь

3

2

6

false

-

3

4

5

true

6

Программа vetvl1.cpp

#include "stdafx.h" #include "math.h"

int _tmain(int argc, _TCHAR* argv[])

{

double a,b,c,p,s; bool x;

scanf_s("%le%le%le",&a,&b,&c); x=(a+b>c && a+c>b && b+c>a); if (x){

p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c)); printf("s=%le\n",s);

}

else

printf("no triangle\n"); return 0;

}

Пример №2

Задание. Написать программу отыскания действительных корней уравнения ах3 + = 0 для произвольных а, b.

Решение.

1) Если a = 0 и b = 0, то получаем уравнение 0х3 + 0х = 0 или 0 = 0,

корнем которого является любое действительное число.

8

2) Если a = 0 и b ≠ 0, то получаем уравнение

= 0,

корнем которого является число 0.

3) Если a ≠ 0 и b = 0, то получаем уравнение ах3 = 0,

корнем которого является число 0.

4) Если a ≠ 0 и b ≠ 0, то получаем уравнение ах3 + = 0 или х (ах2 + b) = 0,

которое разбивается на два уравнения

х = 0 и ах2 + b = 0.

Корнем первого уравнения является число 0. И если –b/a > 0, то второе уравнение имеет действительные корни х = b/ a и х = – b/ a .

Тестовая таблица

a

b

Уравнение

x

 

 

ах3 + = 0

 

0

0

0 = 0

любое

0

3

3x = 0

0

2

0

2x3 = 0

0

1

– 4

x3 – 4x = 0

0, 2, –2

Программа vetvl2.cpp

#include "stdafx.h" #include "math.h"

int _tmain(int argc, _TCHAR* argv[])

{

double a,b,x; scanf_s("%le%le",&a,&b); if(a==0 && b==0)

printf("x any\n");

else

{

if(a!=0 && b!=0)

{

printf("x=0\n"); if(-b/a>0)

{

x=sqrt(-b/a); printf("x=%le\n",x);

9

printf("x=%le\n",-x);

}

}

else

printf("x=0\n");

}

return 0;

}

Задача № 3

МНОЖЕСТВЕННЫЙ ВЫБОР

Цель. Знакомство с организацией множественного выбора в алгоритме.

Задание. Разработать алгоритм решения задачи, приведенной в табл. 3. Алгоритм представить его в виде блок-схемы и программы для ЭВМ на алгоритмическом языке С. Провести полное тестирование программы.

 

Таблица 3

 

 

Задание

варианта

 

 

 

1

Написать программу, которая по номеру дня недели (1 до 7)

 

выдает в качестве результата количество часов аудиторных

 

занятий в вашей группе в этот день.

2

Написать программу, позволяющую по последней цифре

 

числа (0 – 9) определить последнюю цифру его квадрата.

3

Составить программу, которая по заданному году (високос-

 

ный, невисокосный) и номеру месяца (1 – 12) определяет

 

количество дней в этом месяце.

4

Для каждой введенной цифры (0 – 9) вывести соответству-

 

ющее ей название на английском языке (0 – zero, 1 – one, 2

 

two и т.д.).

5

Составить программу, которая по данному числу (1 – 12)

 

выводит название соответствующего ему месяца.

6

Составить программу, позволяющую получить словесное

 

описание школьных отметок (1 – «плохо», 2 – «неудовле-

 

творительно», 3 – «удовлетворительно», 4 – «хорошо», 5 –

 

«отлично»).

7

Пусть элементами круга являются: 1) радиус, 2) диаметр, 3)

 

длина окружности. Составить программу, которая по номе-

 

ру элемента запрашивала бы его значение и вычисляла

 

площадь круга.

10