- •Оглавление
- •1. Вычисление нод алгоритмом Евклида
- •2. Нахождение нод и нок
- •3. Вычисление факториала
- •4. Вычисление факториала рекурсивно
- •5. Вычисление биноминального коэффициента
- •6. Разложение целого числа на сумму биноминальных коэффициентов
- •7. Сумма некоторых элементов массива
- •8. Модификация массива данных. Вариант 1.
- •9. Модификация массива данных. Вариант 2.
- •10. Работа с числами массива
- •11. Поиск совпадений чисел в массиве
- •12. Растяжение списка и вставка, удаление из списка и сжатие. Вариант 1.
- •13. Растяжение списка и вставка, удаление из списка и сжатие. Вариант 2.
- •14. Программа проверки глубины вложения скобок
- •15. Формирование двумерного массива
- •16. Вычисление определителя матрицы второго порядка
- •17. Вычисление определителя матрицы 3 - го порядка
- •18. Подсчет количества цифр в целом числе
- •26. Найти числа близнецы в [a,b]
Министерство образования и науки РФ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Самарский государственный архитектурно-строительный университет Факультет информационных технологий Кафедра прикладной математики и вычислительной техники
|
ПРАКТИКУМ по технологии программирования |
УЧЕБНО-МЕТОДИЧЕСКОЕ ПОСОБИЕ ПО ОРГАНИЗАЦИИ САМОСТОЯТЕЛЬНОЙ РАБОТЫ СТУДЕНТОВ |
|
О.В. Прохорова |
2013 |
Рассматривается построение кодов программ на языке С++ различных математических и прикладных задач. При построении кодов внимание уделяется эффективности построения кодов. |
Оглавление
1. Вычисление НОД алгоритмом Евклида 3
2. Нахождение НОД и НОК 4
3. Вычисление факториала 5
4. Вычисление факториала рекурсивно 6
5. Вычисление биноминального коэффициента 7
6. Разложение целого числа на сумму биноминальных коэффициентов 8
7. Сумма некоторых элементов массива 9
8. Модификация массива данных. Вариант 1. 10
9. Модификация массива данных. Вариант 2. 11
10. Работа с числами массива 12
11. Поиск совпадений чисел в массиве 13
12. Растяжение списка и вставка, удаление из списка и сжатие. Вариант 1. 14
13. Растяжение списка и вставка, удаление из списка и сжатие. Вариант 2. 16
14. Программа проверки глубины вложения скобок 17
15. Формирование двумерного массива 18
16. Вычисление определителя матрицы второго порядка 19
17. Вычисление определителя матрицы 3 - го порядка 20
18. Подсчет количества цифр в целом числе 22
19. Подсчет количества символов в строке 23
20. Проверка целого числа на симметрию цифр 24
21. Проверка_1 строки на симметрию символов 25
22. Проверка_2 строки на симметрию символов 26
23. Вычисление чисел Фибоначчи до n 27
24. Распечатать числа кратные К в диапазоне от 1 до 100. 28
25. Заданная перестановка элементов массива местами 29
26. Найти числа близнецы в [a,b] 30
1. Вычисление нод алгоритмом Евклида
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <conio.h>
void main ()
{
int m,n,r;
cout<<"Enter number m>n ";
cin>>m;
cout<<"Enter number n<m ";
cin>>n;
r=m%n; /* остаток от деления */
while( r>0 )
{
m=n;
n=r;
r=m%n;
}
cout<<" \n NOD = "<<n;
_getch();
}
2. Нахождение нод и нок
/* Даны натуральные числа m, n. Найти наибольший их делитель и наименьшее общее кратное */
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <conio.h>
int main()
{
int n,m,max,min,nok,nod=1,i;
cout<<"Enter n = ";
cin>>n;
cout<<"\n Enter m = ";
cin>>m;
max=n>m?n:m;
min=n<m?n:m;
// Поиск НОД (наибольшего общего делителя)
for(i=1;i<=min;i++)
if((m%i==0)&&(n%i==0))nod=i;
cout<<" \n NOD = "<<nod<<"\n";
// Поиск НОK
for(i=max;i<=m*n;i++)
if((i%m==0)&&(i%n==0))
{
nok=i;
break; // выход из внутреннего цикла
}
cout<<" \n NOK = "<<nok<<"\n";
getch();
return 0;
}
3. Вычисление факториала
// Вычисление факториала n!
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <conio.h>
int main()
{
int n,i=1,fact=1;
cout<<"Enter n = ";
cin>>n;
// через оператор for
for(i=1;i<=n;i++) fact=fact*i;
cout<<" \n n! = "<<fact<<"\n";
// через оператор while
fact=i=1;
while(i<=n)
{
fact=fact*i;
i++;
}
cout<<" \n n! = "<<fact<<"\n";
getch();
return 0;
}
4. Вычисление факториала рекурсивно
// Вычисление факториала n! рекурсивно
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <conio.h>
int fact(int i); // объявление функции
int main()
{
int n;
cout<<"Enter n = ";
cin>>n;
cout<<" \n n! = "<<fact(n)<<"\n";
getch();
return 0;
}
int fact(int i)
{
if(i<=1) return 1;
return i*fact(i-1);
}