Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

И программ с анализом данных

Поиск

СОЗДАНИЕ ПРОСТЫХ ПРОГРАММ

И ПРОГРАММ С АНАЛИЗОМ ДАННЫХ

 

Методические указания к выполнению лабораторных работ по дисциплине «Программирование на языках высокого уровня»

для студентов подготовки бакалавров по направлению 553000

«Системный анализ и управление»

очной формы обучения

 

 

Составители: М.В.Додонов

А.Ю.Павлов

 

 

САМАРА

 
2008

УДК 681.3.07

 

Создание простых программ и программ с анализом данных: методические указания к выполнению лабораторных работ по дисциплине «Программирование на языках высокого уровня» для студентов подготовки бакалавров по направлению 553000 «Системный анализ и управление» очной формы обучения / составители: М.В.Додонов, А.Ю.Павлов. — Самара: СамГУПС, 2008. – 44 с.

 

Утверждены на заседании кафедры «Мехатроника в автоматизированных производствах» 29.04.08, протокол № 9.

Печатаются по решению редакционно-издательского совета университета.

 

 

Методические указания посвящены основам программирования. Излагаются основные принципы создания программ. Описываются процессы формализации, декомпозиции, алгоритмизации, кодирования, отладки и тестирования. Приводятся основные операторы.

Материал предназначен для студентов, изучающих программирование. Рекомендуется студентам обучающимся по направлению «Системный анализ и управление» очной формы обучения.

 

Составители: к.п.н., доцент кафедры «Мехатроника в автоматизированных производствах» СамГУПС М.В.Додонов;

 

к.т.н., доцент кафедры «Мехатроника в автоматизированных производствах» СамГУПС А.Ю.Павлов

 

Рецензенты: к.т.н., доцент, проректор по информатизации СамГУПС

С.А.Никищенков;

к.т.н., доцент кафедры «Мехатроника в автоматизированных производствах» СамГУПС Д.К.Тюмиков

 

Редактор И.М.Егорова

Компьютерная верстка Е.Ю. Шарова

 

 

Подписано в печать 25.11.2008. Формат 60х90 1/16.

Бумага писчая. Печать оперативная. Усл. п.л. 2,75.

Тираж 100 экз. Заказ № 192.

 

 
Ó Самарский государственный университет путей сообщения, 2008

ВВЕДЕНИЕ

Данные методические указания содержат пять лабораторных работ, выполнение которых позволит студенту освоить основы программирования. Создание программ иллюстрируется примерами на Pascal и C.

В процессе создания программы выделяются следующие этапы: формализация, декомпозиция, алгоритмизация, кодирование, тестирование и отладка.

Формализация — это процесс, в ходе которого определяется общее решение задачи.

Декомпозиция — это разделение задачи на подзадачи.

Алгоритмизация — составление упорядоченной последовательности операций, описывающей решение задачи и приводящей к конечному результату.

Кодирование — реализация алгоритма на языке программирования.

Тестирование — проверка программы на тестовых данных.

Отладка — выявление и устранение ошибок.

 

Лабораторная работа №1. Ввод и вывод данных

 

Цель работы: изучение приёмов ввода и вывода данных, овладение навыком составления простых алгоритмов ввода и вывода данных.

 

Задания

Все входные и выходные данные в заданиях этой группы являются вещественными числами.

1. Дана сторона квадрата a. Найти его периметр P = 4 a.

2. Дана сторона квадрата a. Найти его площадь S = a2.

3. Даны стороны прямоугольника a и b. Найти его площадь S = a b и периметр P = 2 (a + b).

4. Дан диаметр окружности d. Найти ее длину L = π d. В качестве значения π использовать 3.14.

5. Дана длина ребра куба a. Найти объем куба V = a3 и площадь его поверхности S = 6 a2.

6. Даны длины ребер a, b, c прямоугольного параллелепипеда. Найти его объем V = a b c и площадь поверхности S = 2 b + b c + a c).

7. Найти длину окружности L и площадь круга S заданного радиуса R: L = 2 π R, S = π R2. В качестве значения π использовать 3.14.

8. Даны два числа a и b. Найти их среднее арифметическое: (a + b)/2.

9. Даны два неотрицательных числа a и b. Найти их среднее геометрическое, то есть квадратный корень из их произведения: .

10. Даны два ненулевых числа. Найти сумму, разность, произведение и частное их квадратов.

11. Даны два ненулевых числа. Найти сумму, разность, произведение и частное их модулей.

12. Даны катеты прямоугольного треугольника a и b. Найти его гипотенузу c и периметр P: , P = a + b + c.

13. Даны два круга с общим центром и радиусами R1 и R2 (R1 > R2). Найти площади этих кругов S1 и S2, а также площадь S3 кольца, внешний радиус которого равен R1, а внутренний радиус равен R2: S1 = π (R1)2, S2 = π (R2)2, S3 = S1− S2. В качестве значения π использовать 3.14.

14. Дана длина L окружности. Найти ее радиус R и площадь S круга, ограниченного этой окружностью, учитывая, что L = 2 π R, S = π R2. В качестве значения π использовать 3.14.

15. Дана площадь S круга. Найти его диаметр D и длину L окружности, ограничивающей этот круг, учитывая, что L = 2 π R, S = π R2. В качестве значения π использовать 3.14.

16. Найти расстояние между двумя точками с заданными координатами x1 и x2 на числовой оси: |x2 − x1|.

17. Даны три точки A, B, C на числовой оси. Найти длины отрезков AC и BC и их сумму.

18. Даны три точки A, B, C на числовой оси. Точка C расположена между точками A и B. Найти произведение длин отрезков AC и BC.

19. Даны координаты двух противоположных вершин прямоугольника: (x1, y1), (x2, y2). Стороны прямоугольника параллельны осям координат. Найти периметр и площадь данного прямоугольника.

20. Найти расстояние между двумя точками с заданными координатами (x1, y1) и (x2, y2) на плоскости. Расстояние вычисляется по формуле: (x2−x1)2 + (y2−y1)2.

21. Даны координаты трех вершин треугольника: (x1, y1), (x2, y2), (x3, y3). Найти его периметр и площадь, используя формулу для расстояния между двумя точками на плоскости (см. задание 20). Для нахождения площади треугольника со сторонами a, b, c использовать формулу Герона: S = p (p − a) (p − b) (p − c), где p = (a + b + c)/2 — полупериметр.

22. Поменять местами содержимое переменных A и B и вывести новые значения A и B.

23. Даны переменные A, B, C. Изменить их значения, переместив содержимое A в B, B — в C, C — в A и вывести новые значения переменных A, B, C.

24. Даны переменные A, B, C. Изменить их значения, переместив содержимое A в C, C — в B, B — в A, и вывести новые значения переменных A, B, C.

25. Найти значение функции y = 3 x6 − 6 x2 7 при данном значении x.

26. Найти значение функции y = 4 (x− 3)67 (x− 3)3 + 2 при данном значении x.

27. Дано число А. Вычислить A8, используя вспомогательную переменную и три операции умножения. Для этого последовательно находить A2, A4, A8. Вывести все найденные степени числа A.

28. Дано число А. Вычислить A15, используя две вспомогательные переменные и пять операций умножения. Для этого последовательно находить A2, A3, A5, A10, A15. Вывести все найденные степени числа A.

29. Дано значение угла α в градусах (0 < α < 360 ). Определить значение этого же угла в радианах, учитывая, что 180= π радианов. В качестве значения π использовать 3.14.

30. Дано значение угла α в радианах (0 < α < 2∙π). Определить значение этого же угла в градусах, учитывая, что 180˚ = π радианов. В качестве значения π использовать 3.14.

31. Дано значение температуры T в градусах Фаренгейта. Определить значение этой же температуры в градусах Цельсия. Температура по Цельсию TC и температура по Фаренгейту TF связаны следующим соотношением: TC = (TF 32) 5/9.

32. Дано значение температуры T в градусах Цельсия. Определить значение этой же температуры в градусах Фаренгейта. Температура по Цельсию TC и температура по Фаренгейту TF связаны следующим соотношением: TC = (TF 32) 5/9.

33. Известно, что X кг конфет стоит A рублей. Определить, сколько стоит 1 кг и Y кг этих же конфет.

34. Известно, что X кг шоколадных конфет стоит A рублей, а Y кг ирисок стоит B рублей. Определить, сколько стоит 1 кг шоколадных конфет, 1 кг ирисок, а также во сколько раз шоколадные конфеты дороже ирисок.

35. Скорость лодки в стоячей воде V км/ч, скорость течения реки U км/ч (U < V). Время движения лодки по озеру T1 ч, а по реке (против течения) — T2 ч. Определить путь S, пройденный лодкой (путь = время скорость). Учесть, что при движении против течения скорость лодки уменьшается на величину скорости течения.

36. Скорость первого автомобиля V1 км/ч, второго — V2 км/ч, расстояние между ними S км. Определить расстояние между ними через T часов, если автомобили удаляются друг от друга. Данное расстояние равно сумме начального расстояния и общего пути, проделанного автомобилями (общий путь = время суммарная скорость).

37. Скорость первого автомобиля V1 км/ч, второго — V2 км/ч, расстояние между ними S км. Определить расстояние между ними через T часов, если автомобили первоначально движутся навстречу друг другу. Данное расстояние равно модулю разности начального расстояния и общего пути, проделанного автомобилями (общий путь = время суммарная скорость).

 

Задание

Решить линейное уравнение A x+B =0, заданное своими коэффициентами A и B (коэффициент A не равен 0).

Выполнение

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

Этап 1. Формализация. Для решения задачи необходимо представить задачу таким образом, чтобы можно было получить её решение после выполнения конечной последовательности действий.

Для решения линейного уравнения A x+B = 0 необходимо произвести ряд преобразований и выразить x через A и B.

A x=-B.

x=-B/A.

Теперь для решения задачи достаточно вместо A и B подставить конкретные значения и вычислить значение x.

Этап 2. Декомпозиция. Производим декомпозицию задачи — выделяем подзадачи. Определяем, что для решения задачи необходимо выполнить следующие подзадачи:

1. Ввести коэффициенты A и B.

2. Подсчитать x =- B/A.

3. Вывести результат на экран.

Этап 3. Алгоритмизация. Составляем алгоритм решения задачи. Выстраиваем последовательность выполнения подзадач и конкретизируем решение каждой подзадачи. Определяем соответствие стандартных операций (ввод, вывод, произведение действий - подсчет) операциям нашего алгоритма. Используем для записи алгоритма форму блок-схемы (рис.1).

Операции ввода в блок-схеме соответствует значок , внутри которого указываются одна или несколько входных переменных.

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

Операции вывода в блок-схеме соответствует значок , внутри которого указываются одна или несколько выходных переменных.

 

Рис.1

 

Этап 4. Кодирование. Переводим разработанный алгоритм на язык программирования — составляем программу. Каждому значку блок-схемы ставим в соответствие оператор языка программирования.

Begin // начало программы

readln(a,b); // ввод переменных

x:=b/a; // подсчет значения х

End. // конец программы

 

Кроме записи алгоритма, в программе требуется объявить все переменные, используемые в алгоритме. В нашем алгоритме переменных три: a, b и x. По условию задачи все переменные должны быть объявлены как вещественные числа, следовательно, в разделе объявления переменных программы, располагающимся перед началом программы, должна содержаться следующая запись:

 

Var

a,b,x:Double;

 

В языке Pascal сначала указывается переменная или список переменных, разделяемых запятой, а затем через знак «:» указывается тип переменной или переменных (для указания вещественного типа рекомендуется использовать Double).

Для программы важным является не только реализация алгоритма, но и интерфейс с пользователем. Ведь если запустить составленную программу, на экране появится пустое чёрное окно с приглашением ввода (мигающий курсор). Пользователю, запустившему эту программу, будет непонятно что делать.

Пользователю необходимо сообщить назначение программы, а также указать, что надо вводить. Это делается с помощью оператора вывода, в круглых скобках которого помещается строка с поясняющим текстом (строка записывается в апострофах).

Реализация программы в среде Delphi выглядит следующим образом:

 

Begin // начало программы

// сообщение пользователю о цели программы

writeln('Programma vychislyaet koren uravneniya Ax+B=0');

// сообщение пользователю о необходимости ввода переменной

write('Vvedite A = ');

readln(a); // ввод переменных

// сообщение пользователю о необходимости ввода переменной

write('Vvedite B = ');

readln(b); // ввод переменных

x:=-(b/a); // подсчет значения х

write('Koren uravneniya x = ',x); // вывод на экран результата

End. // конец программы

 

Язык программирования C

Значку в языке C соответствует функция форматированного ввода scanf(). Внутри круглых скобок этой функции указывается специальная строка форматирования, а затем через запятую перечисляются адреса вводимых переменных. Для указания адреса перед переменной необходимо поставить специальный знак «&».

Значку в языке C соответствует функция форматированного вывода printf(). Внутри круглых скобок этой функции указывается специальная строка форматирования, а затем через запятую перечисляются выводимые переменные.

В строке форматирования функций ввода и вывода определяется, прежде всего, количество вводимых или выводимых переменных и их тип. Для ввода-вывода вещественного числа используется «%f». Строка в С заключается в двойные кавычки.

Из значка в программу извлекается содержимое, которое записывается с учетом синтаксиса языка.

Руководствуясь блок-схемой, записываем алгоритм на языке C:

 

scanf("%f",&a); // ввод a

scanf("%f",&b); // ввод b

x = -b/a; // подсчет значения х

printf("%f",x); // вывод на экран результата

 

Кроме записи алгоритма, в программе требуется объявить все переменные, используемые в алгоритме. В нашем алгоритме переменных три: a, b и x. По условию задачи все переменные должны быть объявлены как вещественные числа, следовательно, в разделе объявления переменных программы, располагающимся перед началом программы должна содержаться следующая запись:

 

float a,b,x;

 

В языке C сначала указывается тип, а затем через пробел переменная или список переменных, разделяемых запятой (для указания вещественного типа используется float).

Для программы важным является не только реализация алгоритма, но и интерфейс с пользователем. Ведь если запустить составленную программу, на экране появится пустое чёрное окно с приглашением ввода (мигающий курсор). Пользователю, запустившему эту программу, будет непонятно что делать.

Пользователю необходимо сообщить назначение программы, а также указать, что надо вводить. Это делается с помощью оператора вывода, в круглых скобках которого помещается строка с поясняющим текстом (строка записывается в двойных кавычках).

Реализация программы в среде С Builder выглядит следующим образом:

 

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

#include <stdio.h>

// функция, с которой начинается выполнение программы

int main(int argc, char* argv[]) {

Задания

Все входные и выходные данные в заданиях этой группы являются целыми числами. Все числа, для которых указано количество цифр (двузначное число, трехзначное число и т.д.), считаются положительными.

1. Дано расстояние L в сантиметрах. Используя операцию деления нацело, найти количество полных метров в нем (1 метр =100 см).

2. Дана масса M в килограммах. Используя операцию деления нацело, найти количество полных тонн в ней (1 тонна = 1000 кг).

3. Дан размер файла в байтах. Используя операцию деления нацело, найти количество полных килобайтов, которые занимает данный файл (1 килобайт = 1024 байта).

4. Даны целые положительные числа A и B (A > B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Используя операцию деления нацело, найти количество отрезков B, размещенных на отрезке A.

5. Даны целые положительные числа A и B (A > B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Используя операцию взятия остатка от деления нацело, найти длину незанятой части отрезка A.

6. Дано двузначное число. Вывести вначале его левую цифру (десятки), а затем — его правую цифру (единицы). Для нахождения десятков использовать операцию деления нацело, для нахождения единиц — операцию взятия остатка от деления.

7. Дано двузначное число. Найти сумму его цифр.

8. Дано двузначное число. Найти произведение его цифр.

9. Дано двузначное число. Вывести число, полученное при перестановке цифр исходного числа.

10. Дано трехзначное число. Используя одну операцию деления нацело, вывести первую цифру данного числа (сотни).

11. Дано трехзначное число. Вывести вначале его последнюю цифру (единицы), а затем — его среднюю цифру (десятки).

12. Дано трехзначное число. Найти сумму и произведение его цифр.

13. Дано трехзначное число. Вывести число, полученное при прочтении исходного числа справа налево.

14. Дано трехзначное число. В нем зачеркнули первую слева цифру и приписали ее справа. Вывести полученное число.

15. Дано трехзначное число. В нем зачеркнули первую справа цифру и приписали ее слева. Вывести полученное число.

16. Дано трехзначное число. Вывести число, полученное при перестановке цифр сотен и десятков исходного числа (например, 123 перейдет в 213).

17. Дано трехзначное число. Вывести число, полученное при перестановке цифр десятков и единиц исходного числа (например, 123 перейдет в 132).

18. Дано целое число, большее 999. Используя одну операцию деления нацело и одну операцию взятия остатка от деления, найти цифру, соответствующую разряду сотен в записи этого числа.

19. Дано целое число, большее 999. Используя одну операцию деления нацело и одну операцию взятия остатка от деления, найти цифру, соответствующую разряду тысяч в записи этого числа.

20. С начала суток прошло N секунд (N — целое). Найти количество полных минут, прошедших с начала суток.

21. С начала суток прошло N секунд (N — целое). Найти количество целых часов, прошедших с начала суток.

22. С начала суток прошло N секунд (N — целое). Найти количество секунд, прошедших с начала последней минуты.

23. С начала суток прошло N секунд (N — целое). Найти количество секунд, прошедших с начала последнего часа.

24. С начала суток прошло N секунд (N — целое). Найти количество полных минут, прошедших с начала последнего часа.

25. Дни недели пронумерованы следующим образом: 0 — воскресенье, 1 — понедельник, 2 — вторник,..., 6 — суббота. Дано целое число K, лежащее в диапазоне 1-365. Определить номер дня недели для K -го дня года, если известно, что в этом году 1 января было понедельником.

26. Дни недели пронумерованы следующим образом: 0 — воскресенье, 1 — понедельник, 2 — вторник,..., 6 — суббота. Дано целое число K, лежащее в диапазоне 1-365. Определить номер дня недели для K -го дня года, если известно, что в этом году 1 января было четвергом.

27. Дни недели пронумерованы следующим образом: 1 — понедельник, 2 — вторник,..., 6 — суббота, 7 — воскресенье. Дано целое число K, лежащее в диапазоне 1-365. Определить номер дня недели для K -го дня года, если известно, что в этом году 1 января было вторником.

28. Дни недели пронумерованы следующим образом: 1 — понедельник, 2 — вторник,..., 6 — суббота, 7 — воскресенье. Дано целое число K, лежащее в диапазоне 1-365. Определить номер дня недели для K -го дня года, если известно, что в этом году 1 января было субботой.

29. Дни недели пронумерованы следующим образом: 1 — понедельник, 2 — вторник,..., 6 — суббота, 7 — воскресенье. Дано целое число K, лежащее в диапазоне 1-365, и целое число N, лежащее в диапазоне 1-7. Определить номер дня недели для K -го дня года, если известно, что в этом году 1 января было днем недели с номером N.

30. Даны целые положительные числа A, B, C. На прямоугольнике размера A × B размещено максимально возможное количество квадратов со стороной C (без наложений). Найти количество квадратов, размещенных на прямоугольнике, а также площадь незанятой части прямоугольника.

31. Дан номер некоторого года (целое положительное число). Определить соответствующий ему номер столетия, учитывая, что, к примеру, началом 20 столетия был 1901 год.

32. Дано четырехзначное число. Найти сумму чисел, первое из которых состоит из первой и последней цифры, а второе — из третьей и второй цифры.

33. Дано четырехзначное число. Найти произведение чисел, первое из которых состоит из первых трех цифр, а второе — из последней цифры.

34. Дано четырехзначное число. Найти остаток от деления чисел, первое из которых состоит из последних трех цифр, а второе — из первой цифры.

35. Дано двузначное число. Найти разность его цифр.

36. Дано трехзначное число. Найти произведение чисел, первое из которых состоит из первой и последней цифр, а второе — из средней цифры.

37. С начала суток прошло N минут (N — целое). Найти количество полных часов, прошедших с начала суток.

 

Задание

Дано четырехзначное число. Найти разность между числами, образуемыми первыми двумя цифрами и последними двумя цифрами.

 

Выполнение

Основное, чем отличаются переменные, — это применяемые к ним операции. Для целых чисел, используемых в этом задании, существуют две операции, которые могут применяться только к целым числам. Это операция целочисленного деления и операция взятия остатка от деления. На использовании этих операций строится выполнение задания.

 

Этап 1. Формализация. Перед выполнением задания на компьютере необходимо рассмотреть конкретные примеры решения задачи, а затем составить схему общего решения задачи.

Возьмем конкретное число 5830. Первые две цифры 5 и 8. Первое число — 58. Последние цифры 3 и 0. Второе число — 30. Разность между ними равна 28.

Для выделения из заданного числа уменьшаемого необходимо использовать операцию целочисленного деления на 100.

Для получения вычитаемого из исходного числа к нему необходимо применить операцию взятия остатка от деления на 100.

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

Z = (A (операция целочисленного деления) 100) – (A (операция взятия остатка от деления) 100)

Этап 2. Декомпозиция. Производим декомпозицию задачи — выделяем подзадачи. Определяем, что для решения задачи необходимо выполнить следующие подзадачи:

1. Ввести число A.

2. Выделить уменьшаемое x = A (операция целочисленного деления) 100.

3. Выделить вычитаемое y = A (операция взятия остатка от деления) 100.

4. Определить разность z = x – y.

5. Вывести разность z на экран.

Этап 3. Алгоритмизация. Составляем алгоритм решения задачи. Выстраиваем последовательность выполнения подзадач и конкретизируем решение каждой подзадачи. Используем для записи алгоритма форму блок-схемы (рис.2).

Рис.2

 

Этап 4. Кодирование. Переводим разработанный алгоритм на язык программирования — составляем программу. Каждому значку блок-схемы ставим в соответствие оператор языка программирования.

Особенностью данной лабораторной работы является использование в ней целых чисел и операций работы с целыми числами.

Begin // начало программы

Readln(A); // ввод переменной

X:=A div 100; // выделение первых двух цифр

Y:=A mod 100; // выделение последних двух цифр

Z:=X-Y; // вычисление разности

End. // конец программы

 

Кроме записи алгоритма, в программе требуется объявить все переменные, используемые в алгоритме. В нашем алгоритме переменных четыре: A, X, Y и Z. По условию задачи все переменные должны быть объявлены как целые числа, следовательно, в разделе объявления переменных программы, располагающемся перед началом программы, должна содержаться следующая запись:

 

Var

A,X,Y,Z:Integer;

После реализации интерфейса программа в среде Delphi выглядит следующим образом:

 

Begin // начало программы

// сообщение пользователю о цели программы

writeln('Programma vychislaet raznost mejdu chislom iz 1-yh dvuh zifr');

writeln('i chislom iz poslednih dvuh zifr.');

// сообщение пользователю о необходимости ввода переменной

write('Vvedite chetyrehznachnoe chislo: ');

Readln(A); // ввод переменой

X:=A div 100; // выделение первых двух цифр

Y:=A mod 100; // выделение последних двух цифр

Z:=X-Y; // вычисление разности

End. // конец программы

 

Язык программирования C

В языке C отсутствует специальная операция целочисленного деления. Используется общая операция деления и для целых, и для вещественных чисел. Результат преобразуется к типу переменной, которой присваивается значение. Операция взятия остатка от деления — операция %.

Руководствуясь блок-схемой, записываем алгоритм на языке C:

 

scanf("%d",&A); // ввод числа

X = A/100; // выделение первых двух цифр

Y = A%100; // выделение последних двух цифр

Z = X-Y; // вычисление разности

printf("%d",Z); // вывод на экран результата

scanf("%d",&A); // ввод числа

 

Кроме записи алгоритма, в программе требуется объявить все переменные, используемые в алгоритме. В нашем алгоритме переменных четыре: A, X, Y и Z. По условию задачи все переменные должны быть объявлены как целые числа, следовательно, в разделе объявления переменных программы, располагающимся перед началом программы должна содержаться следующая запись:

 

int A,X,Y,Z;

 

Для ввода и вывода переменных целого типа в операторах scanf и printf необходимо использовать управляющую последовательность «%d».

После реализации интерфейса программа в среде С Builder выглядит следующим образом:

 

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

#include <stdio.h>

// функция, с которой начинается выполнение программы

int main(int argc, char* argv[]) {

Задания

Во всех заданиях данной группы требуется вывести логическое значение TRUE, если приведенное высказывание для предложенных исходных данных является истинным, и значение FALSE в противном случае. Все числа, для которых указано количество цифр (двузначное число, трехзначное число и т. д.), считаются целыми положительными.

1. Дано целое число A. Проверить истинность высказывания: «Число A является положительным».

2. Дано целое число A. Проверить истинность высказывания: «Число A является нечетным».

3. Дано целое число A. Проверить истинность высказывания: «Число A является четным».

4. Даны два целых числа: A, B. Проверить истинность высказывания: «Справедливы неравенства A > 2 и B3».

5. Даны два целых числа: A, B. Проверить истинность высказывания: «Справедливы неравенства A ≥0 или B < −2».

6. Даны три целых числа: A, B, C. Проверить истинность высказывания: «Справедливо двойное неравенство A < B < C».

7. Даны три целых числа: A, B, C. Проверить истинность высказывания: «Число B находится между числами A и C».

8. Даны два целых числа: A, B. Проверить истинность высказывания: «Каждое из чисел A и B нечетное».

9. Даны два целых числа: A, B. Проверить истинность высказывания: «Хотя бы одно из чисел A и B нечетное».

10. Даны два целых числа: A, B. Проверить истинность высказывания: «Ровно одно из чисел A и B нечетное».

11. Даны два целых числа: A, B. Проверить истинность высказывания: «Числа A и B имеют одинаковую четность».

12. Даны три целых числа: A, B, C. Проверить истинность высказывания: «Каждое из чисел A, B, C положительное».

13. Даны три целых числа: A, B, C. Проверить истинность высказывания: «Хотя бы одно из чисел A, B, C положительное».

14. Даны три целых числа: A, B, C. Проверить истинность высказывания: «Ровно одно из чисел A, B, C положительное».

15. Даны три целых числа: A, B, C. Проверить истинность высказывания: «Ровно два из чисел A, B, C являются положительными».

16. Дано целое положительное число. Проверить истинность высказывания: «Данное число является четным двузначным».

17. Дано целое положительное число. Проверить истинность высказывания: «Данное число является нечетным трехзначным».

18. Проверить истинность высказывания: «Среди трех данных целых чисел есть хотя бы одна пара совпадающих».

19. Проверить истинность высказывания: «Среди трех данных целых чисел есть хотя бы одна пара взаимно противоположных».

20. Дано трехзначное число. Проверить истинность высказывания: «Все цифры данного числа различны».

21. Дано трехзначное число. Проверить истинность высказывания: «Цифры данного числа образуют возрастающую последовательность».

22. Дано трехзначное число. Проверить истинность высказывания: «Цифры данного числа образуют возрастающую или убывающую последовательность».

23. Дано четырехзначное число. Проверить истинность высказывания: «Данное число читается одинаково слева направо и справа налево».

24. Даны числа A, B, C (число A не равно 0). Рассмотрев дискриминант

D = B2 − 4∙A∙C, проверить истинность высказывания: «Квадратное уравнение

A∙x2 + B∙x + C = 0 имеет вещественные корни».

25. Даны числа x, y. Проверить истинность высказывания: «Точка с координатами (x, y) лежит во второй координатной четверти».

26. Даны числа x, y. Проверить истинность высказывания: «Точка с координатами (x, y) лежит в четвертой координатной четверти».

27. Даны числа x, y. Проверить истинность высказывания: «Точка с координатами (x, y) лежит во второй или третьей координатной четверти».

28. Даны числа x, y. Проверить истинность высказывания: «Точка с координатами (x, y) лежит в первой или третьей координатной четверти».

29. Даны числа x, y, x1, y1, x2, y2. Проверить истинность высказывания: «Точка с координатами (x, y) лежит внутри прямоугольника, левая верхняя вершина которого имеет координаты (x1, y1), правая нижняя — (x2, y2), а стороны параллельны координатным осям».

30. Даны целые числа a, b, c, являющиеся сторонами некоторого треугольника. Проверить истинность высказывания: «Треугольник со сторонами a, b, c является равносторонним».

31. Даны целые числа a, b, c, являющиеся сторонами некоторого треугольника. Проверить истинность высказывания: «Треугольник со сторонами a, b, c является равнобедренным».

32. Даны целые числа a, b, c, являющиеся сторонами некоторого треугольника. Проверить истинность высказывания: «Треугольник со сторонами a, b, c является прямоугольным».

33. Даны целые числа a, b, c. Проверить истинность высказывания: «Существует треугольник со сторонами a, b, c».

34. Даны координаты поля шахматной доски x, y (целые числа, лежащие в диапазоне 1-8). Учитывая, что левое нижнее поле доски (1,1) является черным, проверить истинность высказывания: «Данное поле является белым».

35. Даны координаты двух различных полей шахматной доски x1,у1, x2, y2 (целые числа, лежащие в диапазоне 1-8). Проверить истинность высказывания: «Данные поля имеют одинаковый цвет».

36. Даны координаты двух различных полей шахматной доски x1,y1, x2,y2 (целые числа, лежащие в диапазоне 1-8). Проверить истинность высказывания: «Ладья за один ход может перейти с одного поля на другое».

37. Даны координаты двух различных полей шахматной доски x1,y1, x2,y2 (целые числа, лежащие в диапазоне 1-8). Проверить истинность высказывания: «Король за один ход может перейти с одного поля на другое».

 

Задание

Даны координаты двух различных полей шахматной доски x1, y1, x2, y2 (целые числа, лежащие в диапазоне 1-8). Проверить истинность высказывания: «Конь за один ход может перейти с одного поля на другое».

Выполнение

Для выполнения задания необходимо составить логическое выражение, в котором проверяется истинность высказывания: «Конь за один ход может перейти с одного поля на другое».

Логическое выражение включает в себя операторы сравнения: больше, меньше, равно, и логические операторы: И, ИЛИ, НЕ.

Этап 1. Формализация. Для составления общего решения задачи, проанализируем перемещение коня по доске. Конь ходит буквой «Г». Если он располагается на клетке с координатами x1 и y1, то перейти он может на поля с координатами: x1+2 и y1+1, x1+2 и y1-1, x1-2 и y1+1, x1-2 и y1-1, x1+1 и y1+2, x1+1 и y1-2, x1-1 и y1+2, x1-1 и y1-2. Высказывание будет истинным, если среди полей, на которые может перейти конь, окажется поле с координатами x2 и y2. То есть высказывание истинно, если (x2=x1+2 и y2=y1+1) или (x2=x1+2 и y2=y1-1) или (x2=x1-2 и y2=y1+1) или (x2=x1-2 и



Поделиться:


Последнее изменение этой страницы: 2016-08-26; просмотров: 592; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.119.192.2 (0.019 с.)