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

ОАП_решения_задачи

.pdf
Скачиваний:
104
Добавлен:
26.03.2015
Размер:
1.69 Mб
Скачать

1

Заочный факультет

 

I курс 2011/2012

Основы алгоритмизации и программирования

Пацей Н.В.

Задачи для решения

2

Оглавление

 

 

 

Тема 1 Операторы ввода-вывода...................................................................................................................................

 

4

Задача 1.1 .................................................................................................................................................................

 

4

Задача 1.2 .................................................................................................................................................................

 

4

Тема 2 Линейные алгоритмы..........................................................................................................................................

 

6

Задача 2.1 .................................................................................................................................................................

 

6

Задача 2.2. ................................................................................................................................................................

 

7

Задача 2.3 .................................................................................................................................................................

 

8

Задача 2.4. ................................................................................................................................................................

 

9

Тема 3 Разветвляющиеся алгоритмы...........................................................................................................................

 

11

Задача 3.1. ..............................................................................................................................................................

 

11

Задача 3.2. ..............................................................................................................................................................

 

11

Задача 3.3. ..............................................................................................................................................................

 

12

Задача 3.4 ...............................................................................................................................................................

 

13

Задача 3.5 ...............................................................................................................................................................

 

14

Задача 3.6 ...............................................................................................................................................................

 

14

Задача 3.7 ...............................................................................................................................................................

 

15

Задача 3.8 ...............................................................................................................................................................

 

16

Тема 4 Циклические конструкции и итерационные алгоритмы................................................................................

18

Задача 4.1 ...............................................................................................................................................................

 

18

Задача 4.2 ...............................................................................................................................................................

 

19

Задача 4.3 ...............................................................................................................................................................

 

19

Задача 4.4 ...............................................................................................................................................................

 

20

Задача 4.5 ...............................................................................................................................................................

 

21

Задача 4.6 ...............................................................................................................................................................

 

22

Задача 4.7 ...............................................................................................................................................................

 

22

Задача 4.8 ...............................................................................................................................................................

 

24

Тема 5 Одномерные массивы.....................................................................................................................................

 

27

Задача 5.1 ...............................................................................................................................................................

 

27

Задача 5.2 ...............................................................................................................................................................

 

31

Задача 5.3 ...............................................................................................................................................................

 

32

Задача 5.4 ...............................................................................................................................................................

 

33

Задача 5.5 ...............................................................................................................................................................

 

34

Задача 5.6 ...............................................................................................................................................................

 

35

Задача 5.7 ...............................................................................................................................................................

 

37

Тема 6 Многомерные массивы и указатели...............................................................................................................

 

39

Задача 6.1 ...............................................................................................................................................................

 

40

3

Задача 6.2 ...............................................................................................................................................................

41

 

 

 

Задача 6.3 ...............................................................................................................................................................

42

 

Задача 6.4 ...............................................................................................................................................................

43

 

Задача 6.5 ...............................................................................................................................................................

44

Тема 7 Строки и указатели ..........................................................................................................................................

46

 

Задача 7.1 ...............................................................................................................................................................

46

 

Задача 7.2 ...............................................................................................................................................................

47

 

Задача 7.3 ...............................................................................................................................................................

48

 

Задача 7.4 ...............................................................................................................................................................

49

 

Задача 7.5 ...............................................................................................................................................................

50

Тема 8 . Функции...........................................................................................................................................................

52

 

Задача 8.1 ...............................................................................................................................................................

52

 

Задача 8.2 ...............................................................................................................................................................

53

 

Задача 8.3 ...............................................................................................................................................................

55

Тема 9 Динамические многомерные массивы ..........................................................................................................

57

 

Задача 9.1 ...............................................................................................................................................................

57

 

Задача 9.2 ...............................................................................................................................................................

58

 

Задача 9.3 ...............................................................................................................................................................

59

Тема 10 Структуры, объединения, битовые поля, перечисления ...........................................................................

61

 

Задача 10.1 .............................................................................................................................................................

61

 

Задача 10.2 .............................................................................................................................................................

63

Тема 11 Файлы .............................................................................................................................................................

68

 

Задача 11.1 .............................................................................................................................................................

68

 

Задача 11.2 .............................................................................................................................................................

68

4

Тема 1 Операторы ввода-вывода

Задача 1.1

Выведите на экран размеры всех базовых типов данных С в байтах

#include "stdafx.h" #include <iostream> #include <locale>

int _tmain(int argc, _TCHAR* argv[])

{

setlocale (LC_CTYPE, "Russian"); using std::cout;

using std::endl;

//определение размерности размерность базовых типов данных cout<<"Тип объекта Его размер в байтах" << endl;

cout<<" Размерность int: "<<sizeof(int)<<"\n"; cout<<" Размерность char: "<<sizeof(char)<<"\n";

cout<<" Размерность unsignid: "<<sizeof(unsigned)<<"\n"; cout<<" Размерность long: "<<sizeof(long)<<"\n"; cout<<" Размерность float: "<<sizeof(float)<<"\n"; cout<<" Размерность double: "<<sizeof(double)<<"\n"; cout<<"\n";

return 0;

}

Задача 1.2

Выполните ввод на консоль переменных следующих типов данных: char, int, float, unsigned int, unsigned short int, long long, double, long double, bool. Выполните вывод введенных переменных , используя потоковый вывод с манипуляторами, форматированный вывод и символьный вывод.

//

#include "stdafx.h" #include <iostream> #include <locale> #include <stdio.h> #include<iomanip>

int _tmain(int argc, _TCHAR* argv[])

{

setlocale (LC_CTYPE, "Russian"); using namespace std;

char c,probel; probel=' '; int i;

float f; unsigned int ui;

unsigned short int usi; long long ll;

double d;

5

long double ld; bool b;

cout<<"Введите char: "; cin>>c; cout<<"Введите int: "; cin>>i;

cout<<"Введите float: "; cin>>f;

cout<<"Введите unsigned int: "; cin>>ui;

cout<<"Введите unsigned short int: "; cin>>usi;

cout<<"Введите long long: "; cin>>ll;

cout<<"Введите double: "; cin>>d;

cout<<"Введите long double: "; cin>>ld;

cout<<"Введите bool: "; cin>>b;

cout<<"число unsigned int: "<<ui<<endl;

cout<<"Число в восмеричной системе "<<oct<<ui<<endl; printf ("Значение числа double равно:%f", d); cout<<'\n';

puts ("Это символьный вывод "); putchar (c);

cout<<'\n';

cout<<"Тип объекта Его размер в байтах" << endl; cout<<" Размерность int: "<<sizeof(int)<<"\n"; cout<<" Размерность char: "<<sizeof(char)<<"\n";

cout<<" Размерность unsigned: "<<sizeof(unsigned)<<"\n"; cout<<" Размерность long: "<<sizeof(long)<<"\n";

cout<<" Размерность float: "<<sizeof(float)<<"\n"; cout<<" Размерность double: "<<sizeof(double)<<"\n"; cout<<"\n";

cout<<setw(35)<<setfill(probel)<<probel;

cout<<setw(10)<<setfill(c)<<c<<endl;

cout<<setw(34)<<setfill(probel)<<probel;

cout<<setw(12)<<setfill(c)<<c<<endl;

cout<<setw(33)<<setfill(probel)<<probel;

cout<<setw(14)<<setfill(c)<<c<<endl;

cout<<setw(32)<<setfill(probel)<<probel;

cout<<setw(16)<<setfill(c)<<c<<endl;

cout<<setw(31)<<setfill(probel)<<probel;

cout<<setw(18)<<setfill(c)<<c<<endl;

cout<<setw(32)<<setfill(probel)<<probel;

cout<<setw(16)<<setfill(c)<<c<<endl;

cout<<setw(33)<<setfill(probel)<<probel;

cout<<setw(14)<<setfill(c)<<c<<endl;

cout<<setw(34)<<setfill(probel)<<probel;

cout<<setw(12)<<setfill(c)<<c<<endl;

cout<<setw(35)<<setfill(probel)<<probel;

cout<<setw(10)<<setfill(c)<<c<<endl;

return 0;

}

6

Тема 2 Линейные алгоритмы

Задача 2.1

Написать программу, вычисляющую следующее выражения, обеспечив при этом: ввода данных с клавиатуры, инициализации данных в тексте программы, вывода результата на экран

y 1 x2 cos(m) / sin(0.9m) 18z

w0.4 y 2e 0.2 y m

x 1.24; m 6;

Если z 0.05 10 5

#include "stdafx.h" #include <iostream> #include <stdio.h> #include <cmath> using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

setlocale (LC_CTYPE, "Russian"); float x;

int m; double z,y,s;

cout<<"Введите Х"<<endl; cin>> x;

cout<<"Введите M"<< endl; cin>> m;

cout<<"ВВедите Z"<< endl; cin>> z;

s=log((2*x/3)+ ((pow(2.78,((int)-x))))/(1.05 + x ));

y= (sqrt(1 + pow(x,-2) ))- (cos((float)m)/sin(0.9*m)) - 18*z; cout<<endl;

cout<<"s="<<s<<endl; cout<<"y="<<y<<endl; return 0;

}

Задача 2.2.

Дано действительное число а. Не пользуясь никакими операциями кроме *, получить заданные значения. Составить блок схему алгоритма Вывести на экран результат в виде:

число а результаты 1-ой 2-ой

3-ей 4-ой 5-ой 6-ой и т.д.операций

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

Для а4и а20 за 5 операций

#include "stdafx.h" #include <cmath> #include <iostream> using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

setlocale (LC_CTYPE, "Russian"); float a;

float b,c,d,e;

cout<<"Введите число"<<endl;

cin>>a;

b=a*a*a*a;

c=b*a*a;

d=c*b;

e=b*c*d;

cout<<endl; cout<<"число"<<a<<endl; cout<<"результаты"<<endl; cout<<"1-ой="<<b<<endl; cout<<"2-ой="<<c<<endl;

8

cout<<"3-ой="<<d<<endl; cout<<"4-ой="<<e<<endl;

cout<<"Второй вариант задачи"<<endl;

cout<<"число в 4-ой степени="<<pow(a,4)<<endl; cout<<"число в 20-ой степени="<<pow(a,20)<<endl;

return 0;

}

Задача 2.3

«Косой» квадрат. У квадрата ABCD на плоскости известны координаты двух противоположных вершин — точек A и С. Найти координаты точек В и D. Примечание. Расположение квадрата произвольно; его стороны не обязательно параллельны координатным осям.

#include "stdafx.h" #include <iostream> #include <locale> #include <stdio.h> using namespace std;

int main ()

{

setlocale (LC_CTYPE, "Russian");

cout << "Введите координаты точек А и С" << std::endl; float x1, x2, y1, y2, vectx, vecty, X, Y;

cout<<"Введи координаты точки А:"<<endl; cin >> x1 >> y1;

cout<<"Введи координаты точки C:"<<endl; cin>>x2>>y2;

X = (x1 + x2) / 2;

Y = (y1 + y2) / 2;

vectx = x2 - x1; vecty = y2 - y1;

9

}

cout << "Координаты двух других вершин квадрата" <<endl; printf ("B ""%0.2f %0.2f\n", X - vecty / 2, Y + vectx / 2);

printf ("D ""%0.2f %0.2f\n", X + vecty / 2, Y - vectx / 2);

return 0;

Задача 2.4.

Треугольник задается координатами своих вершин на плоскости A(x1,y1),B(x2,y2),C(x3,y3). Найти площадь треугольника

#include "stdafx.h" #include <stdio.h> #include <math.h> #include <locale>

inline float dist (float x1, float y1, float x2, float y2)

{

return (float) sqrt ((float) pow (x2 - x1, 2) + (float) pow (y2 - y1, 2));

}

int main ()

{

float xa, ya, xb, yb, xc, yc; setlocale (LC_CTYPE, "Russian");

printf ("Введите координаты вершин треугольника\n"); scanf ("%f%f%f%f%f%f", &xa, &ya, &xb, &yb, &xc, &yc);

float a = dist (xa, ya, xb, yb), b = dist (xa, ya, xc, yc), c = dist (xb, yb, xc, yc); float p = (a + b + c) / 2.0;

float s = (float) sqrt (p * (p - a) * (p - b) * (p - c)); printf ("Плодащь треугольника равна - %0.5f\n", s);

return 0;

}