- •Т.Э. Шульга основы программирования на языке с
- •Введение
- •1. Структура программы на языке с
- •Void main()
- •Задание 1. Вывод строки на экран с использованием esp-последовательности
- •2. Переменные. Основные типы данных
- •Задание 2. Описание переменных и преобразование типов
- •3. Ввод – вывод значений переменных
- •Void main()
- •Void main()
- •Задание 3. Форматирование вывода
- •4. Основные операции языка с
- •Void main ()
- •Заданиe 4. Простейшие вычисления
- •5. Конструкции выбора
- •Void main()
- •Void main()
- •Void main()
- •Задание 5. Обработка введенного символа
- •Задание 6. Вычисление значения функции
- •Задание 7. Применение разветвляющихся алгоритмов при решении простейших задач
- •Задание 8. Mультиветвление
- •6. Конструкции цикла и передачи управления
- •Int *t; // неинициализированный указатель на объект типа int,
- •Void main()
- •Int a2[3][2]; // массив из 3 массивов, содержащих по 2 целых элемента.
- •Задание 9. Детерминированные циклы. Простейшие задачи
- •Void main()
- •Задание 10. Итерационные циклы. Простейшие задачи
- •Void main()
- •Int last;
- •Задание 11. Одномерные массивы
- •Void main()
- •Задание 12. Вложенные циклы
- •Void main ()
- •Задание 13. Двумерные массивы
- •Void main ()
- •Задание 14. Посимвольная обработка строк
- •Void main ()
- •Задание 15. Сортировка массива
- •Void main ()
- •7.Функции
- •Int max (int n, int m ) // определение функции нахождения максимума
- •Void main()
- •Int strcmp(const char *str1, const char* str2);
- •Void main()
- •Int fclose (file * stream);
- •Int feof(file *stream);
- •Int fseek ( file* stream, long offset, int origin);
- •Void main ()
- •Задание 16. Определение и вызов функций
- •Задание 17. Рекурсивные функции
- •Задание 18. Использование библиотечных функций string.H
- •Задание 19. Использование библиотечных функций stdio.H
Задание 17. Рекурсивные функции
Записать алгоритм Евклида вычисления наибольшего общего делителя (НОД) как рекурсивную функцию. Алгоритм основан на том факте, что если a=qb+r, где 0<r<b, то HOD(a,b)=HOD(b,r). В процессе вычислений выводить на экран текущие выражение a=qb+r в численном виде, то есть 37=2*17+3, 17=5*3+2 и т.д. В конце вывести НОD.
Записать алгоритм, проверящий является ли заданное число простым как рекурсивную функцию. Вывести на экран все простые числа, не превосходящих n.
Записать алгоритм разложения произвольного числа на простые множители как рекурсивную функцию с выводом на экран сомножителей.
Записать алгоритм нахождения канторового разложения произвольного числа а – векторав виде рекурсивной функции. Канторовым разложением положительного числаа называется запись вида: ,.
Определить рекурсивную функцию, которая возвращает факториал целого неотрицательного числа. Написать программу, вычисляющую по заданнымa и b.
Определить рекурсивную функцию, вычисляющую число сочетаний , используя соотношение.
Определить рекурсивную функцию, которая возвращает n–ое число Фибоначчи. Числа Фибоначчи вычисляются следующим образом: .
Определить рекурсивную функцию, которая вычисляет сумму цифр натурального числа.
Определить рекурсивную функцию, выводящую на экран цифры целого положительного числа.
Определить рекурсивную функцию, которая находит корень уравнения f(x)=0 на заданном интервале [a,b] c заданной точностью . Корень ищется методом деления отрезка пополам по следующему алгоритму. Первоначально предполагается, что f(a)f(b)<0.
вычисляются f(а), f(b);
вычисляется c=(a+b)/2 и f(c);
если f(a)f(c)>0, то а=c, в противном случае b=c;
если b–a>, то перейти к шагу 2, иначе любой из концов отрезка может быть использован в качестве корня уравнения.
Определить рекурсивную функцию, выводящее в экран двоичное представление заданного десятичного числа.
Определить рекурсивную функцию, возвращающую максимальное из n чисел.
Задание 18. Использование библиотечных функций string.H
Дана текстовая строка. Вывести на печать все ее слова в таком порядке: все однобуквенные, потом все двухбуквенные, потом все трехбуквенные и т.д. до слова максимальной длины, используя функции strtok, strlen.
Даны текстовая строка и слово (например, ba). Напечатать все слова, входящие в эту текстовую строку, начинающиеся с букв заданного слова (например, bak, barber, baab, baalam), используя функции strtok, strlen, strnicmp.
Дана текстовая строка. Сформировать строку, состоящую из последних букв слов заданной текстовой строки, используя функции strtok, strlen и вывести ее на экран. Например, если задана строка adcd ef ghi jklmn, то на экран должно быть выведено слово dfin.
Даны текстовая строка и слово (например, ab). Напечатать все слова, входящие в эту текстовую строку, заканчивающиеся на буквы заданного слова (например, abcdab, ab, kab), используя функции strtok, strlen, strcmp.
Даны текстовая строка и слово. Определить, какие слова из этой текстовой строки предшествуют заданному слову в лексикографическом порядке, используя функции strtok, strcmp.
Дан набор слов и произвольная текстовая строка. Выбрать из текстовой строки все слова, входящие в данный набор и вывести их на печать, используя функции strtok, strcmp.
Дана текстовая строка. Определить, упорядочены ли ее слова по алфавиту, указать первое слово, нарушающее порядок, используя функции strtok, strcmp.
Из заданной текстовой строки распечатать только те слова, которые начинаются и оканчиваются одной и тоже буквой, используя функции strtok, strlen.
Из заданной строки, распечатать все слова без повторений, используя функции strtok, strcmp.
Дана текстовая строка. Сформировать строку, состоящую из третьих букв каждого слова заданной текстовой строки, используя функции strtok, strlen, и вывести ее на экран. Например, если задана строка adcd ef ghi jklmno, то на экран должно быть выведено слово сil.
Дана текстовая строка. Распечатать строку, состоящую из слов заданной, расположенных в лексикографическом порядке, используя функции strtok, strlen, strnicmp.
Дана текстовая строка. Распечатать из нее все слова, имеющие наименьшую и наибольшую длину, используя функции strtok, strlen.