Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

I a b c результат (можно/ нельзя)




СБОРНИК ЗАДАЧ ПО СТРУКТУРНОМУ ПРОГРАММИРОВАНИЮ

 

(С ПРИМЕРАМИ РЕШЕНИЙ)

И.Ф. БАБАЛОВА


Оглавление

Оглавление. 2

Аннотация. 3

Введение. 3

1. РАЗДЕЛ 1. 4

1.1. Работа с простыми типами данных. 4

ПРИМЕР 1.1.1. 6

ПРИМЕР 1.1.2. 7

1.2. Работа с символами, строками и текстом. 8

ПРИМЕР 1.2.1. 11

1.3. Разработка структурированных программ с использованием процедур и функций. 12

ПРИМЕР 1.3. 15

1.4. Работа с файлами разных типов. 17

ПРИМЕР 1.4. 20

1.5. Динамические структуры данных. Списки. 25

ПРИМЕР 1.5. 28

1.6. Решение графических задач. 35

ПРИМЕР 1_6. 39

2. РАЗДЕЛ 2. 41

2.1. Работа с графическими объектами. 41

ПРИМЕР 2.1. 44

2.2. Работа с объектами- векторами. 47

ПРИМЕР 2.2. 51

2.3. Работа с объектами - списками. 53

ПРИМЕР 2.3. 60

2.4. Разработка объектов- таблиц. 64

2.5. Работа со структурами данных типа дерево. 70

ПРИМЕР 2.5. 74

2.6. Разработка многомодульных задач. 79

Приложение. 87

Список литературы.. 96


Аннотация

Предлагаемый сборник задач содержит задачи по основным разделам курса ”Информатика и программирование” на базе любого объектно-ориентированного языка (Turbo Pascal, Object Pascal, C++ и т.п.). 681.3.121 И.Ф. Бабалова. Сборник задач по структурному программированию.

Издательство МИФИ., 2000 г.

Введение

Предлагаемые в сборнике задачи являются творчеством автора. При составлении задач использовались разделы математики, комбинаторики, дискретной математики и часто встречающиеся практические задачи. Некоторые из задач, несомненно, заимствованы или переформулированы из хороших изданных ранее задачников по программированию: С.А.Абрамов,Г.Г.Гнездилова, Е.Н.Капустина, М.Н.Селюн “Задачи по программированию”, издательство “Наука” 1988 г., и В.Н.Пильщиков

“ Сборник упражнений по Паскалю”, издательство “Наука”, 1989 года.

Предложенная в этом сборнике последовательность тематики задач должна соответствовать последовательности их решения, что может позволить осваивающим языки программирования изучить использование возможных типов простых и структурированных данных, способы построения и разработки программ разного уровня сложности и возможности разработки собственных объектов и классов в языке: создание графических объектов, классов, объектов типа список (стек, очередь), объектов типа таблица, объектов типа вектор, объектов типа дерево. В каждом разделе задачника задачи подобраны на одну тему. Но по уровню сложности делить задачи мне не представляется целесообразным. Оценка сложности задач достаточно субъективна и, несомненно, зависист от уовня общей подготовки обучающихся программированию. В связи с этим задачник может быть использован как для проведения занятий по соответствующим дисциплинам, так и для самостоятельной работы. Количество задач в каждом разделе позволит обеспечить индивидуальными заданиями обычную студенческую груииу. Каждая из задач темы 2.6 может быть реализована методами “бригадного проектирования”. Использование подобного сборника задач целесообразно для освоения способов разработки различных структур данных при решении большинства практических задач.


РАЗДЕЛ 1

Работа с простыми типами данных

Задачи этой темы позволяют рассмотреть способы обработки простых типов данных: целых или вещественных чисел. Число при решении предлагаемых задач в этом разделе -- это целое или вещественное со знаком.

 

1.1.1. Дано натуральное число n. Удалить из записи числа все нули и единицы. Подсчитать количество оставшихся цифр в изображении числа.

1.1.2. Дано поизвольное вещественное число. Определить порядок числа и количество цифр в изображении числа.

1.1.3. Дано целое число с количеством цифр в его записи < 10. Записать число в обратном порядке.

1.1.4. Дано целое число N. Разложить его на простые множители. Вывести на экран исходное число и полученные множители.

1.1.5. Часовая стрелка образует угол j с лучом, проходящим через центр и через точку, соответствующую 12 часам на циферблате: 0<j<2p. Определить значение угла для минутной стрелки для заданного величины j, а также количество полных часов и полных минут.

1.1.6. Дано 10- разрядное число, допустимой для записи целых чисел величины. Определить, является ли введенное число палиндромом. (Число, значение которого при чтении справа налево и слева направо одинаково, называется палиндромом).

1.1.7. Дано некоторое натуральное число. Определить сколько и каких цифр встречается в его записи. Результат обработки: <цифра> - <количество>.

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

1.1.9. Дано целое натуральное число. Каждую цифру числа заменить на дополнение ее до 10. Вывести на экран исходное число и преобразованное.

1.1.10. Даны два целых числа M и N. Найти все одинаковые цифры в каждом из чисел.

1.1.11. Даны N наборов чисел a, b, c. Определить возможность построения треугольника для каждого из наборов чисел. Результат вывести в форме

i a b c результат (можно/ нельзя)

1.1.12. Даны целые положительные числа К и N. Найти P=(K)N!. Определить диапазон допустимых N. Учитывать при решении задачи допустимую величину целого числа.

1.1.13. Дано целое число N. Определить число цифр в записи числа и найти сумму цифр числа.

1.1.14. Дано целое число N, определяющее возраст человека. Для этого числа определить наименование: год, года, лет. Например, 31 год, 32 года, 25 лет.

1.1.15. Даны целые числа m, N. Определить сумму любых m цифр числа N.

1.1.16. Дано целое число K, имеющее значения в диапазоне 1..365. Определить номер дня недели (1..7), на который приходится введенное число для невисокосного года (високосным считается год, который делится на 4, но не 100 и т.п.). Считаем, что первый день года,1 января, это понедельник.

1.1.17. Определить значение угла в градусах между положением часовой стрелки в начале суток и ее положением в H часов, M минут и S секунд (0<=H<=11, 0<=M<=59,0<= S<=59).

1.1.18. Дано вещественное число. Определить первую цифру дробной части числа.

1.1.19. Дано целое число N. Выделить из числа все четные цифры.

1.1.20. Найти наибольший общий делитель двух натуральных чисел.

1.1.21. Дано целое число. Определить количество нулей в записи числа.

1.1.22. Из вводимого набора целых чисел найти числа, для которых квадрат заданного трехраазрядного целого числа равен кубу суммы его цифр.

1.1.23. Дано многоразрядное целое число. Определить равна ли сумма двух первых цифр числа сумме двух последних цифр.

1.1.24. Дано вещественное число. Определить порядок числа для записи его в форме: +-a.bE1+-x, где 1<=а<=9, b - дробная часть в записи числа, x- степень основания системы счисления.

1.1.25. Дано целое число. Определить количество и сумму цифр, стоящих на нечетных местах в записи числа.

1.1.26. Дано целое число. Поменять порядок цифр в записи числа на обратный.

1.1.27. Дано целое N-разрядное число. Поменять местами первую и последнюю цифры в записи числа.

1.1.28. Дано N-разрядное целое десятичное число. Преобразовать его в запись числа в восьмеричной системе счисления.

1.1.29. Дано N-разрядное целое десятичное число. Преобразовать его в запись числа в двоичной системе счисления.

1.1.30. Из заданного набора чисел найти числа, не имеющие общих делителей.

1.1.31. Дано некоторое целое число. Все нули в изображении числа заменить единицами.

1.1.32. Задано вещественное число. Определить порядок числа и количество цифр в изображении дробной части числа.

1.1.33. Написать программу, позволяющую получить все перестановки из К различных элементов и напечатать все перестановки.

1.1.34. Дано натуральное число N. Из записи числа удалить все единицы и нули. Порядок следования остальных цифр оставить без изменения.

1.1.35. Дано произвольное число N. Получить все цифры числа N!. Считать факториал только в диапазоне допустимой величины целого числа.

ПРИМЕР 1.1.1

Идет N-ая секунда суток. Определить полное количество часов и минут в заданный момент времени, считая от начала суток.

program Number_1_1;

var hour,minute,n:longint;

{Количество секунд в полных сутках равно 86 400, что требует

рассмотрения решения задачи только с длинными целыми}

ch:char;

Begin

writeln(' Работа первой программы');

Repeat

writeln('Ведите значение секунд');

readln(n);

hour:=n div 3600;

minute:= n div 60 -hour*60;

writeln('Получено часов= ',hour,' минут= ',minute);

writeln('Еще хотите проверить время?- y or n');

readln(ch);

until ch='n';

End.

Вычисление рядов.

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

 


1.1.31.

1.1.32.

1.1.33.

1.1.34.

1.1.35.

1.1.36.

1.1.37.

1.1.38.

1.1.39.

1.1.40.

1.1.41.

1.1.42.

1.1.43.

1.1.44.

1.1.45.

1.1.46.

1.1.47.

1.1.48.

1.1.49.

1.1.50.


ПРИМЕР 1.1.2.

Дан ряд . Найти сумму ряда для любого заданного количества членов ряда n и значения X.

program Number_1_2;

{Этот пример показывает простейшую алгоритмизацию

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...