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

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

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

Федеральное государственное автономное образовательное учреждение высшего образования «РОССИЙСКИЙ УНИВЕРСИТЕТ ДРУЖБЫ НАРОДОВ»

А.М. Мардашев, А.С. Панкратов, С.И. Салпагаров

ЗАДАЧИ ПО ПРОГРАММИРОВАНИЮ

НА С/С++

Учебно-методическое пособие

Москва Российский университет дружбы народов

2017

УДК 004.43(072.8)

У т в е р ж д е н о

ББК 32.973.26-018.1

РИС Ученого совета

М25

Российского университета

 

дружбы народов

Мардашев, А. М.

М25 Задачи по программированию на С/С++ : учебнометодическое пособие / А. М. Мардашев, А. С. Панкратов, С. И. Салпагаров. – Москва : РУДН, 2017. – 70 с.

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

Предназначено для студентов I курса, изучающих дисциплины «Программирование» и «Основы программирования».

 

УДК 004.43(072.8)

 

ББК 32.973.26-018.1

ISBN 978-5-209-08034-3

© Мардашев А.М., Панкратов А.С.,

 

Салпагаров С.И., 2017

 

© Российский университет

 

дружбы народов, 2017

Тема 1. Линейная структура

Пример 1. Программы на Си с линейной структурой являются наиболее простым видом программ, представляющих собой набор текстовых строк с препроцессорными директивами и описанием главной функции main, в которой последовательно выполняются несложные действия. В первом примере программы показан вывод на экран фразы с помощью стандартной функции printf, которая прописана в стандартном модуле stdio.h. Следует обратить внимание, что функция main согласно объявлению возвращает значение целого типа. Это требование здесь и в дальнейшем выполняется оператором перехода return.

#include <stdio.h> //подключение стандартной //библиотеки

int main() //заголовок главной функции

{printf("We are students of RUDN!"); return 1;

}

Пример 2. В этой программе объявляются переменные символьного и целого типа, с помощью операции присваивания задаются их значения, а затем осуществляется их форматный вывод на экран. Используются также управляющие символы перевода строки '\n' и табуляции '\t', что позволяет вывести значения переменных ln и number на разных строках экрана, а слова выводимой фразы раздельно. Управляющий символ '\a' означает сигнал-звонок.

#include <stdio.h> int main()

{char symbol; int number; unsigned int ln;

3

ln = 16; number = -ln; printf("ln=%dnumber=%d\n", ln, number); printf("Students\tare\t

learning\tenglish."); symbol = '\a'; printf("symbol=%c\n", symbol); return 1;}

Пример 3. Данная программа вычисляет длину окружности, площадь круга и объём шара посредством оператора присваивания. Исходное значение радиуса вводится с клавиатуры при помощи стандартной функции ввода данных с клавиатуры scanf, прописанной в стандартном модуле stdio.h. Для корректного вычислении объема шара используется явное преобразование целого типа в вещественный. Другой вариант

— вместо целочисленного значения 4 представить его в вещественном виде: 4.0.

#include<stdio.h> int main ()

{float r,l,s,v;

printf("The program for the calculation of length,

area and volume\n");

 

printf("Input r");

 

scanf("%f",&r);

//оператор присваивания

l=2*3.14*r;

s=3.14*r*r;

//оператор присваивания

v=(float)4/3*3.14*r*r*r; //оператор присваивания printf("l=%6.2f\n",l);

printf("s=%6.7f\n",s);

printf("v=%6.7f\n",v); return 1;}

Пример 4. При вычислении сложных формул, содержащих различные математические функции, следует использовать стандартные функции, прописанные в модуле math.h. Следующая программа служит тому примером.

4

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

{

float x,y; x=1.75; y=sin(x);

printf("y=%6.3f\n",y);

y=exp(x);

printf("y=%6.3f\n",y);

y=log(x);

printf("y=%6.3f\n",y); return 1;

}

Замечание. Для корректного подключения модуля math.h именовать файл следует с расширением .cpp .

Пример 5. Этот пример является вариантом программы № 3, в котором используется стандартная функция возведения вещественного числа в степень. Заметим, что при вычислении объёма шара осуществляется неявное преобразование типа.

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

{float r,l,S,V;

printf("Введите r \n");// Подсказка-запрос на ввод scanf("%f",&r);

l=2*3.14*r;

S=3.14*pow(r,2);

V=(4*3.14*pow(r,3))/3;

printf("l=%6.2f\n",l);

printf("S=%6.2f\n",S);

printf("V=%6.2f\n",V); return 1;

}

5

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

#include<stdio.h> int main ()

{int n,k,d,s; printf("Input n\n"); scanf("%d",&n); k=n%10;

d=n%100/10;

s=n/100;

printf("s=%d\n",s);

printf("d=%d\n",d);

printf("k=%d\n",k); return 1;

}

Пример 7. Представим ещё один пример успешного решения задачи с помощью операций целочисленного деления. Формулировка задачи. В трёхподъездном девятиэтажном доме (1-9 этажи, по 4 квартиры на этаже) требуется по номеру квартиры (1-108) определить номер подъезда и номер этажа.

#include<stdio.h>

#include<math.h> int main() {int p,k,n,e;

printf("Введите n\n");//Подсказка-запрос на ввод scanf("%d",&n);

p=(n-1)/36+1;

printf("Номер подъезда =%d\n",p); k=(n-1)%36+1;

e=(k-1)/4+1;

printf("Номер этажа =%d\n",e); return 1;

}

6

Задачи

1.Составьте программу для вычисления площади трапеции по заданным основаниям a, b и высоте h.

2.Составьте программу для вычисления длин высот треугольника, у которого длины сторон a, b, c.

3.Составьте программу для вычисления длин медиан треугольника, у которого длины сторон a, b, c.

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

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

6.Идет k-я секунда суток. Определите, сколько полных часов и минут прошло к этому моменту от начала суток.

7.В школьном коридоре длиной 65 м нужно выкрасить пол. Выкрасив часть коридора длиной 22 м, израсходовали А кг краски. Сколько еще нужно краски, чтобы докрасить коридор?

8.Универмаг в ноябре продал товаров на А млн. р., что на 15% больше, чем в октябре. На какую сумму были проданы товары в октябре?

9.Мельхиор – это сплав никеля и меди массы, которых пропорциональны числам 2 и 9. Сколько потребуется никеля и меди для выплавки С кг мельхиора?

10.Масса молекул кислорода в организме человека составляет 65% от его массы. Составьте программу для определения массы молекул кислорода в организме человека.

7

11.Даны два числа. Найти среднее арифметическое кубов этих чисел и среднее геометрическое модулей этих чисел.

12.Вычислить расстояние между двумя точками на плоскости с данными координатами (x1, y1) и (x2, y2).

13.По двум данным катетам найти гипотенузу и площадь прямоугольного треугольника.

14.Известна сумма денег, имеющаяся у покупателя (рубли и копейки) и стоимость одной единицы товара. Сколько единиц товара сможет купить покупатель и какова его сдача?

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

16.Даны катеты прямоугольного треугольника. Найти его гипотенузу и площадь.

17.Дана сторона равностороннего треугольника. Найти его площадь.

18.Найти объем параллелепипеда по двум сторонам основания, углу между ними и высоте.

19.Цех по ремонту бытовой техники имеет ежедневно прибыль Р, с которой платит налог 60%. Из оставшейся доли прибыли 30% идет на развитие производства, а остальное — на заработную плату 8 работникам. Какова среднемесячная зарплата работника?

20.Составьте программу для вычисления массы пластины прямоугольной формы со сторонами a и b (с учётом

плотности, которая вводится с клавиатуры).

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

22.Дана длина ребра куба. Найти объем куба и площадь его боковой поверхности.

23.Известен объем и масса тела. Определить плотность материала этого тела.

8

24.Известно количество жителей в государстве и площадь его территории. Определить плотность населения в этом государстве.

25.Даны основание и высота равнобедренной трапеции. Найти ее периметр.

26.Даны длины сторон прямоугольного параллелепипеда. Найти его объем и площадь боковой поверхности.

27.Треугольник задан своими координатами своих вершин. Найти периметр и площадь треугольника.

28.Дана длина ребра куба. Найти площадь грани, площадь полной поверхности и объем этого куба.

29.Найти площадь кольца, внутренний радиус которого равен R1 , а внешний радиус равен R2 (R1 R2 ).

30.Дана сторона равностороннего треугольника. Найти площадь этого треугольника и радиусы вписанной и описанной окружностей.

31.Найти периметр и площадь равнобедренной трапеции с основаниями a и b (a b ) и углом при большем основании (угол дан в радианах).

32.Дано целое четырехзначное число. Найти сумму его цифр.

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

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

35.Поменять местами первую и последнюю цифру данного трехзначного числа.

36.Дано число N 99. Дописать в начало и в конец числа цифру k .

37.Даны: n — число сторон правильного n-угольника, a — длина его стороны. Найти площадь n-угольника.

38.Найти площадь параллелограмма по двум сторонам и углу между ними.

9

39.Найти объём правильной треугольной пирамиды с заданной стороной основания и высотой.

40.Найти объём правильной четырёхугольной пирамиды с заданными стороной основания и боковой стороной.

Тема 2. Условный оператор

Пример 1. Существует множество задач, для решения которых необходимо проверять какие-то условия и, в зависимости от этих условий, выполнять те или иные действия. Для программирования таких решений применяют условные операторы. Ниже приводятся варианты программы для определения местоположения некоторой точки относительно заданного на числовой оси замкнутого отрезка. В зависимости от расположения точки выводятся сообщения:

“On”(точка на отрезке), “Left”(точка слева от отрезка) и “Right”(точка справа от отрезка).

а) Вариант с использованием условных операторов в краткой форме:

#include <stdio.h> int main()

{float a,b,x;

printf("Введите a,b,x!\n"); //Запрос на ввод scanf("%f%f%f",&a,&b,&x);

if((a<=x)&&(x<=b)) printf("On"); //усл. оператор

if(x<a) printf("Left");

//усл. оператор

if(x>b)) printf("Right");

//усл. оператор

return 1;

 

}

 

б) Вариант с использованием условных операторов в полной форме. Причём реализовано вложение одного условного оператора в другой.

#include <stdio.h> int main()

10

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