ОАП_решения_задачи
.pdf1 |
Заочный факультет |
|
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;
}