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

Задачи по программированию на СС++. Учебно-методическое пособие

.pdf
Скачиваний:
0
Добавлен:
11.08.2026
Размер:
528 Кб
Скачать

19.Написать программу, которая по номеру пробы золота, выводит цвет золота. Например, 585 – красное и т.д. (найти и дополнить самостоятельно).

20.Написать программу, которая по расстоянию от солнца до планеты, выводит название планет Солнечной системы.

21.Написать программу, которая по диаметру планеты Солнечной системы, выводит название планеты Солнечной системы.

22.Написать программу, которая по начальному году эры (млн. лет назад), выводит название эры. Например, 4500 – катархей, 3500 – архей, 2500 – протерозой, 534 – палеозой, 248 – мезозой, 65 – кайнозой.

23.Составить программу, которая в зависимости от оценок 5, 4, 3, 2 выводит на экран диапазоны значений

86…100, 69…85, 51…68, 0…50. (соответствие пяти-

балльной и стобалльной систем оценивания).

24.Составить программу, которая в зависимости от букв A, B, C, D, E выводит на экран диапазоны значений

95…100, 86…94, 69…85, 61…68, 51…60.

25.Ввести номер поезда. Вывести его категорию. Номера поездов в зависимости от категории устанавливаются следующим образом: 1–150 – скорые круглогодичные; 151–298 – скорые сезонные и разовые; 301–450 и 601– 698 – пассажирские круглогодичные; 451–598 – пассажирские сезонные и разовые; 701–750 – скоростные: 751–788 – высокоскоростные; 801–898 – моторвагонные; 901–920 – служебные; 921–940 – туристические; 941–960 – людские; 961–970 – грузопассажирские; 971– 998 – почтово-багажные.

26.Ввести число от 1 до 10. Вывести его запись римскими цифрами.

27.Чемпионаты мира по футболу проходят раз в 4 года

(1994, 1998, 2002, 2006, …). Чемпионаты Европы по футболу проходят тоже раз в 4 года (1996, 2000,

21

2004, …). Задача: вести год (с 1950 по 2016) и вывести, какой чемпионат проходил в данном году (или не проходил никакой).

Тема 4. Цикл с предусловием

Пример 1. Программа вычисляет частичную сумму (n первых слагаемых) гармонического ряда с применением оператора цикла while (цикл с предусловием). Здесь реализуется стандартный алгоритм накопления суммы. На каждом шаге цикла к текущему значению суммы добавляется очередное слагаемое. Следует обратить внимание на то, что при выражении этих слагаемых значение единицы записывается в вещественном виде, иначе все слагаемые, кроме первого, обратятся в нуль и не внесут вклад в требуемую сумму.

#include <stdio.h>

 

int main ()

 

{int n, i; float S;

 

printf("Введите n \n");

 

scanf("%d", &n);

 

S=0; i=1;

//Заголовок цикла

while (i<=n)

{S=S+1.0/i; i++;}

//Тело цикла

printf("i=%d S=%f\n", i,S); return 0;}

Пример 2. Факториал некоторого заданного натурального числа также можно вычислить с помощью оператора цикла while. Начальное значение факториала приравнивается единице. На каждом шаге цикла осуществляется умножение текущего значения факториала на следующее по порядку целое число. Цикл завершается, когда это целое число превысит заданное натуральное число, факториал которого требуется подсчитать.

22

#include <stdio.h> int main()

{long int p,n,i; printf("Введите n\n"); scanf("%ld",&n); p=1;i=2;

while(i<=n)

{p=p*i;i=i+1;

}

printf("P=%ld",p); return 1;

}

Пример 3. C помощью такого же цикла подсчитываются приближенно значения аналитических функций. Здесь приведен пример программы для вычисления частичной суммы степенного ряда, являющегося разложением по степеням x функции ехр(х). Если задать некоторое вещественное число x и достаточно большое натуральное число n, то частичная сумма ряда будет приближенно равна значению ехр(х). Пример показывает, каким образом в цикле насчитываются, одновременно, и очередные слагаемые и сама сумма этих слагаемых.

#include <stdio.h> int main()

{long int n,i; float x,p,s;

printf("Input x,n\n"); scanf("%f%ld",&x,&n); i=1; p=1; s=0; while(i<=n)

{s=s+p; p=p*x/i; i=i+1;} printf("P=%f\n S=%f",p,s); return 1;

}

Пример 4. С помощью циклов можно также приближенно решать трансцендентные уравнения, например, x=arctg(x)+1.

23

С этой целью выстраивается рекуррентная последовательность элементов an=arctg an–1+1, a1 0. Если при определен-

ном значении n будет выполнено условие an an 1 e , где e

— точность вычисления (достаточно малое положительное число), то можно считать an искомым корнем уравнения.

#include <stdio.h> #include <math.h> int main(){

double е, An, An1; int n;

printf(”Введите малое число e”); scanf(”%lf”,&е);

An = 0;

An1 = atan(An) + 1; n = 2; printf(”%8.5lf”,An); printf(”%8.5lf”,An1);

while(fabs(An – An1) >= e) {An = An1;

An1 = atan(An) + 1; printf(”%8.5lf”,An1); n = n + 1;

}

printf(”Приближенный корень = %f”, An1); return 1;

}

Задачи

1.Составьте программу, которая вычисляет сумму чисел от k до n . Значения k и n вводятся с клавиатуры, причём k < n .

2.Составьте программу, которая печатает таблицу перевода расстояний из дюймов в сантиметры (1 дюйм = 2,54 см) для значений длин от 1 до 20 дюймов.

24

3.Вывести таблицу квадратных корней целых чисел в промежутке от 1 до 15 с шагом 1.

4.Даны натуральные числа от 20 до 50. Напечатать те из них, которые делятся на 3, но не делятся на 5.

5.Ввести с клавиатуры 10 чисел. Если среди них есть числа, большие 15, заменить их на 15. Напечатать все полученные числа.

6.Найти сумму чисел от 100 до 200, кратных 17.

7.Вводятся координаты n точек. Определить, сколько из них попадает в круг радиусом r с центром в точке

(a,b).

8.Дано натуральное n . Вычислить:

111 122 ... 1nn .

9.Напишите программу вывода всех четных чисел в диапазоне от 2 до 120 включительно.

10.С клавиатуры вводятся числа и последовательно суммируются. Найти сумму каждого третьего из этих чисел.

11.Составьте программу вычисления степени некоторого вещественного числа х с натуральным показателем n (путём умножения x на самого себя).

12.Даны натуральное число n и действительное x . Вы-

числить: x1! x2! ... xn!.

13. Пусть a1 1;

aк ak 1 /k k (k 1,2,...). Дано натураль-

ное n . Получить an .

14.Найти все двузначные числа, сумма квадратов цифр которых делится на 13.

15.Найти сумму первых 30 чисел Фибоначчи.

16.Для заданного значения n 0 вычислить значение факториала числа (2n)!.

17.Запрограммировать алгоритм Евклида для нахождения НОД двух натуральных чисел A и B.

25

18.

Дано x. Вычислить

 

 

 

 

s

2x

 

4x

 

6x

 

22x

 

x2 42

x2 52

x2 62

x2 142

 

 

 

 

 

19.

Даны x, . Вычислить

 

 

s 1 x2 x4 x6

2! 4! 6!

Суммировать до тех пор, пока очередное слагаемое по модулю не станет меньше . Результат сравнить (визуально) с cosx .

20. Вычислить величину y

3

6

9

96 99 .

Тема 5. Цикл с постусловием

Пример 1. Данный пример построен на цикле с постусловием do…while, отличающийся от цикла с предусловием тем, что вначале выполняется необходимая группа операторов, а затем проверяется условие продолжения цикла.

Задача. Вычислить сумму цифр заданного натурального числа n.

#include <stdio.h> int main(){

int Sum, n, d; do{

printf(”Введите n > 0 ”); scanf(”%d”,&n);

}while(n <= 0);//проверяем положительность //и отличие от нуля, вводимого //с клавиатуры целого числа n

Sum = 0; do{

d = n%10; //выделяем цифру, отвечающую //за число единиц в текущем d

Sum = Sum + d;

26

N = n/10; //переходим к следующему числу, //т.е. отбрасываем цифру с единицами

}while(n > 0);

printf(”Сумма цифр в n равна %5d”,Sum); return 1;

}

Задачи

1.Составьте программу, которая вычисляет произведение чисел от 1 до n . Значение n вводится с клавиатуры.

2.Вывести таблицу квадратных корней целых чисел в промежутке от 2 до 20 с шагом 2

3.В банке под 10% годовых открыт вклад на S рублей. Какой станет сумма вклада через n лет?

4.Даны натуральные числа от 35 до 87. Найти и напечатать те из них, которые при делении на 7 дают остаток

1, 2 или 5.

5.Напечатать те из двузначных чисел, которые делятся на 4, но не делятся на 6.

6.Ввести с клавиатуры 10 чисел. Если квадрат числа меньше 100, напечатать число и его квадрат.

7.Вводятся поочередно данные о росте n учащихся клас-

са. Определить средний рост учащихся класса.

8. Дано натуральное n . Вычислить:

1/21 142 ... 1((2n)n).

9.Напишите программу определения суммы всех нечетных чисел в диапазоне от 1 до 99 включительно.

10.Напишите программу определения идеального веса для 15 взрослых людей по формуле: Ид. вес = рост – 100.

11.Напишите программу, которая выведет на экран 10 строк по 5 случайных чисел в диапазоне 0…36.

12.Составьте программу получения в порядке убывания всех делителей данного числа n .

27

13.Найти наибольшее и наименьшее значение функции y 3x2 x 4, если на заданном интервале [a,b] x из-

меняется с шагом 0,1.

14.Составить программу, определяющую, является ли данное число n простым.

15.Составить программу вывода всех трехзначных чисел, сумма цифр которого равна данному натуральному числу.

16.Найти автоморфные числа в интервале от единицы до числа, введенного с клавиатуры. Автоморфное число – такое, которое равно последним разрядам своего квад-

рата (например : 5-25, 6-36, 25-625).

17.Найти наибольшее и наименьшее значение функции

y x2 2x 5, если на заданном интервале [a,b] x изменяется с шагом 0,3.

18.Пифагоровыми называются тройки натуральных чисел a, b, c удовлетворяющие условию a2 b2 c2 . Напри-

мер, пифагоровой является тройка чисел 6, 8, 10. Найдите все тройки пифагоровых чисел, не превышающих 25.

19. Даны x, eps. Вычислить

s

 

2x

 

 

4x

 

6x

 

x2

42

x2

52

x2 62

 

 

 

 

Суммировать до тех пор, пока очередное слагаемое по модулю не станет меньше .

20. Даны x, . Вычислить

s x x3 x5 x7

3! 5! 7!

Суммировать до тех пор, пока очередное слагаемое по модулю не станет меньше . Результат сравнить (визуально) с sinx .

28

Тема 6. Цикл с параметром

Пример 1. Ещё одна форма оператора цикла – это цикл for или цикл с параметром. Отметим, что любой алгоритм с повторением однотипных действий может быть запрограммирован в любой из трёх форм оператора цикла. Следующий код составлен для вычисления суммы квадратов чисел от 1 до заданного числа n при помощи цикла for.

#include <stdio.h> #include <math.h> int main(){

int Sum, n, i; do{

printf(”Введите n > 0 ”); scanf(”%d”,&n);

}while(n <= 0); Sum = 0; for(i=1;i<=n;i++)

Sum = Sum + pow(i,2); printf(”Сумма равна %5d”,Sum); return 1;

}

Задачи

1.Составьте программу, которая определяет количество отрицательных, количество положительных и количество нулей среди вводимых с клавиатуры n чисел.

2.Ввести с клавиатуры n пар чисел. Сравнить числа в каждой паре и напечатать большие из них.

3.Даны натуральные числа от 1 до 50. Найти сумму тех из них, которые делятся на 5 или на 6.

4.Найти произведение двузначных нечетных чисел, кратных 13.

5.Составьте программу, которая вычисляет произведение кубов чисел от 1 до введенного числа n.

29

6.Ввести целое число n. Выписать все его делители в порядке возрастания.

7.Задано натуральное число n . Найти количество натуральных чисел, не превосходящих n и не делящихся ни на одно из чисел 2, 3, 5.

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

9.Напишите программу вычисления среднего геометрического модулей двух введенных с клавиатуры целых чисел. Программа повторяет циклически это действие, условие выхода из цикла – значение от 1 до 20.

10.Напишите программу, которая n раз требует ввести пароль в виде некоторого натурального числа, и если пароль правильный, например «123», то печатает сообщение «Авторизация успешна».

11.Натуральное число называется совершенным, если оно равно сумме своих делителей, кроме себя самого (например, 6=1+2+3). Выписать все совершенные числа из первой тысячи.

12.Натуральное число называется простым, если у него имеется только два делителя: оно само и единица (например, 19, 23). Выписать все простые числа в заданном диапазоне.

13.Заданное натуральное число n разложить на простые множители.

14. Пусть a1 1;

aк k ak 1 1/k ,

(k 1,2,...). Дано нату-

ральное n . Получить an .

15.Составьте программу вывода на экран всех простых чисел, не превосходящих заданного n .

16.Дано натуральное число n . Составить программу, подсчитывающую количество цифр целого числа n и определяющую его первую цифру.

17.Для заданного значения n 0 вычислить значение факториала числа (2n 1)!.

30

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]