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

KR

.docx
Скачиваний:
2
Добавлен:
07.01.2022
Размер:
252.18 Кб
Скачать

КФГБОУ ВО

Уфимский государственный авиационный технический университет

Кафедра ТК

ОТЧЕТ

по расчётно-графической работе

Тема «Программирование на языках высокого уровня»

Вариант № 17

Выполнил: студент гр. ИВТ-114

Балыбердин Н. А.

Проверил: доцент каф. ТК

Хасанов А.Ю.

Уфа 2017

Тема работы: Программирование на языках высокого уровня

Цель работы: Получение навыков работы с языками высокого уровня в языке С++.

Вариант № 17

Задание 1: Составить блок-схему алгоритма:

Код программы: Блок схема:

#include <iostream>

#include <conio.h>

#include <math.h>

#include <cmath>

#include <string.h>

using namespace std;

void input (double x[], int n)

{

for(int i=0;i<n;i++)

cin>>x[i];

}

void output (double x[], int n)

{

for(int i=0;i<n;i++)

cout<<x[i]<<" ";

}

void main()

{

i=0; n; 11

setlocale(LC_ALL,"rus");

int i, n;

double *a, *b, *c;

cout << "Введите размер: ";

cin >> n;

a = new double[n];

b = new double[n];

c = new double[n];

cout << "Введите элементы A: ";

input(a,n);

cout << "Введите элементы B: ";

input(b,n);

output(c,m)

cout << "Результат: ";

for (i=0; i<n; i++)

c[i]= pow(a[i], 2) +a[i] * b[i]+pow(b[i],2);

output(c,n);

getch();

Конец

delete[]a;

delete[]b;

delete[]c;

}

Задание 2: Написать псевдокод алгоритма решения задачи:

Лежит ли точка (x, y) на прямой ax+by+c=0.

Код программы:

#include<iostream>

#include<conio.h>

using namespace std;

void main()

{

setlocale(LC_ALL, "rus");

double x, y ,a ,b, c;

cout << "Введите постоянные прямой:\nA=";

cin >> a; cout << "B="; cin >> b; cout << "C="; cin >>c;

cout << "Введите координаты точки x: ";

cin >> x;

cout << "Введите координаты точки y: ";

cin >> y;

if (a*x+b*y+c==0)

cout << "Точка лежит на прямой";

else

cout << "Точка не лежит на прямой";

getch();

}

Блок схема:

Пример работы программы:

Задание 3: Написать программу на С/С++ с использованием рекуррентных соотношений решения задачи:

Код программы: Блок-схема:

#include<iostream>

#include<conio.h>

#include<math.h>

using namespace std;

void main()

{

setlocale(LC_ALL,"rus");

long double x, s, p;

int k, n;

cout << "Введите количество элементов:\nn=";

cin >> n;

cout << "\nВведите x:\nx=";

cin >> x;

k=1;n;1

p=-1;

s=0;

for (k=1; k<=n; k++)

{

Возврат

s = s + p;

p = p*((-1)*x)/ (3*k+1);

}

cout << "\nСумма элементов равна:\ns=" << s << endl;

getch();

}

P = = p*((-1)*x)/ (3*k+1);

Пример работы программы:

Задание 4: Написать программу на С/С++ решения задачи:

Текст программы:

#include<iostream>

#include<conio.h>

using namespace std;

void main()

{

setlocale(LC_ALL, "rus");

int **a, n, i, j, k, min, s;

cout << "Введите размер матрицы n " << endl << "n=";

cin >> n;

cout << endl;

cout << "Введите элементы: ";

cout << endl;

a = new int*[n];

for (i = 0; i<n; i++)

a[i] = new int[n];

for (i = 0; i<n; i++)

for (j = 0; j<n; j++)

{

cout << "a(" << i + 1 << "," << j + 1 << ")=";

cin >> a[i][j];

}

cout << endl;

cout << "Исходная матрица:\n";

for (i = 0; i<n; i++)

{

for (j = 0; j<n; j++)

cout << a[i][j] << " ";

cout << endl;

}

cout << endl;

cout << "Вывод результатов: \n";

i = 0; j = 0; s = 0;

for (j = 0; j<n; j++)

{

min = a[0][j];

for (i = 0; i<n; i++)

if (a[i][j]<min) min = a[i][j];

cout << "\nМинимальный элемент " << j + 1 << " столбца = " << min << " ";

s += min;

}

cout << endl;

cout << "\nСумма миниимальных элементов = " << s;

getch();

}

Блок-схема: Пример работы программы:

a[i]=new int[n]

i=0; n; 1

j=0; n; 1

a[i][j]

1

i=0;n;1

a[i][j]<

min

min=a[i][j]

min

s += min

s

Конец

1

Задание 5: Оформить в виде функции на С/С++ решения задачи:

Текст программы: Блок-схема:

# include <iostream>

#include <conio.h>

#include <math.h>

#include <cmath>

#include <string.h>

using namespace std;

void input(double x[], int n)

{

for (int i = 0; i<n; i++)

cin >> x[i];

}

void output(double x[], int n)

{

for (int i = 0; i<n; i++)

cout << x[i] << " ";

}

void main()

{

setlocale(LC_ALL, "rus");

int i, n;

double *a, *b, *c;

cout << "Введите размер: ";

cin >> n;

a = new double[n];

b = new double[n];

c = new double[n];

cout << "Введите элементы A: ";

input(a, n);

cout << "Введите элементы B: ";

input(b, n);

cout << "Массив С: ";

for (i = 0; i < n; i++)

c[i] = abs(a[i] + b[i]);

output(c, n);

getch();

delete[]a;

delete[]b;

delete[]c;

}

Пример работы программы:

Задание 6: Какое значение будет выведено при выполнении опереторов:

int a, b, *pa, *pb;

pa = &a;

pb = pa;

*pb = 1;

pb = &b;

*pb = 2;

cout << *pa<< " " << b;

Ответ: *pa = 1, b = 2.

Задание 7: Написать рекурсивную функцию вычисления количества отрицательных элементов массива

{ }, где i=1,2,..,n

Текст программы:

#include <iostream>

#include <math.h>

#include <conio.h>

#include <locale>

#include <stdio.h>

using namespace std;

void counter(int *x, int n, int k, int *pos)

{

if (k == n) return;

if (x[k]<0) (*pos)++;

counter(x, n, k + 1, pos);

}

int main(int argc, char* argv[])

{

setlocale(LC_ALL, "rus");

int *a, i, n, k;

cout << "Введите размер массива: "; cin >> n; a = new int[n];

cout << "Введите массив: ";

for (i = 0; i<n; i++)

cin >> a[i];

k = 0;

counter(a, n, 0, &k);

cout << "Количество отриц. эл.=" << k;

getch();

delete[]a;

return 0;

}

Пример работы программы:

Соседние файлы в предмете Программирование