Отчет по вычислительной практике



Министерство образования и науки Российской Федерации

ФГАОУ ВПО «УрФУ имени первого Президента России Б.Н. Ельцина»

Институт радиоэлектроники и информационных технологий – РТФ

Кафедра информационных технологий

ОТЧЕТ

по дисциплине: Вычислительная практика

Вариант № 29

ПреподавательС.П. Трофимов

Студент гр. РИВ-120208сВ.А. Политов

Номер зачетной книжки09204513

Екатеринбург

2013

СОДЕРЖАНИЕ

Задача 13

Задача 25

Задача 47

Задача 59

Задача 810

Задача 1211

Задача 612

Задача 314

Приложение А15

приложение б17

Приложение В19

Приложение Г23

приложение д25

Приложение ж27

приложение К29

Приложение л33

Задача 1

Тема: Основные операции языка Cи. Часть 1.

Вычисление векторного произведения. Написать программу, которая запрашивает у пользователя координаты двух трехмерных векторов и выводит на экран координаты вектора, являющегося векторным произведением двух векторов. Векторное произведение определяется формулой

Например:

Введите координаты первого вектора: 1 -2 1

Введите координаты второго вектора: 2 0 -3

Векторное произведение 6 5 4

Инструкция пользователя.

Запустить командную строку (ПУСК – Все программы – Стандартные – Командная строка.

В командной строке необходимо перейти в каталог, где находиться программа. Для этого необходимо воспользоваться командой cd: “cd C:\Borland\politov\N1”, затем убедимся, что в каталоге находиться необходимая нам программа с помощью команды DIR, и запустим ее, написав ее имя.

После этого программа у пользователя запрашивает входные данные (координаты первого вектора, координаты второго вектора) и выводит результат (векторное произведение векторов) рисунок 1.

Рисунок 1

Инструкция программиста.

В проекте N1.PRJ присутствуют файлы MY.H, MAIN.CPP, CALC.CPP, TEST.CPP.

В файле MY.H прописаны прототипы функции выполнения программы.

В файле MAIN.CPP находятся функции main, input и output. Функция main вызывает тест проверки на взлом кода TEST.CPP, ввод данных пользователем, вызов функции CALC.CPP (принимает координаты векторов по адресу и возвращает векторное произведение данных векторов) и ответ пользователю в конечном результате (функция output). Исходный код программы расположен в приложении А.

Задача 2

Тема: Основные операции языка Cи. Часть 2.

Инвертировать порядок цифр в числе. Написать программу, которая запрашивает у пользователя натуральное число и инвертирует порядок цифр в нем. Учесть ситуацию переполнения. При реализации запрещено пользоваться строковыми функциями. Пример:

Введите число:123

Инвертированное число: 321

Инструкция пользователя.

Запустить командную строку (ПУСК – Все программы – Стандартные – Командная строка.

В командной строке необходимо перейти в каталог, где находиться программа. Для этого необходимо воспользоваться командой cd: “cd C:\Borland\politov\N2”, затем убедимся, что в каталоге находиться необходимая нам программа с помощью команды DIR, и запустим ее, написав ее имя.

После этого программа у пользователя запрашивает входные данные (натуральное число) и выводит результат (инвертированное число) рисунок 2.

Рисунок 2

Инструкция программиста.

Файл N2.cpp функции input, calc, output, test.

Функция input ничего не принимает, запрашивает натуральное число у пользователя и проверяет его на переполнение. Возвращает введенное пользователем число.

Функция calc принимает введенное пользователем число и возвращает инвертированное.

Функция output принимает инвертированное число и выводит его на экране.

Функция test — тест проверки кода на взлом

Код программы в приложении Б.

Задача 4

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

С одномерным массивом, состоящим из n натуральных эле-ментов, произвести следующие операции: 1) Вычислить среднее геометрическое элементов массива;

2) Вычислить произведение среднего арифметического на сумму всех элементов массива;

3) переставить местами элементы массива с четными и нечетными номерами.

Инструкция пользователя.

Запустить командную строку (ПУСК – Все программы – Стандартные – Командная строка.

В командной строке необходимо перейти в каталог, где находиться программа. Для этого необходимо воспользоваться командой cd: “cd C:\Borland\politov\N4”, затем убедимся, что в каталоге находиться необходимая нам программа с помощью команды DIR, и запустим ее, написав ее имя.

После этого программа у пользователя запрашивает входные данные (количество элементов в массиве, элементы массива) и выводит результат (среднее геометрическое элементов массива, произведение среднего арифметического на сумму всех элементов массива, переставленные местами элементы массива с четными и нечетными номерами) рисунок 3.

Рисунок 3

Инструкция программиста.

В проекте N4.PRJ присутствуют файлы MY.H, MAIN.CPP, CALC.CPP, TEST.CPP. В файле MY.H прописаны прототипы функции выполнения программы. В файле MAIN.CPP находятся функции main, input и output. Функция main вызывает тест проверки на взлом кода TEST.CPP, ввод данных пользователем, вызов функций CALC.CPP

Функция geom принимает массив и количество элементов в массиве, возвращает среднее геометрическое элементов массива. Функция arif принимает массив и количество элементов в массиве, возвращает произведение среднего арифметического на сумму всех элементов массива. Функция perestanov принимает массив и количество элементов в массиве, возвращает переставленные местами элементы массива с четными и нечетными номерами. Исходный код программы расположен в приложении В.

Задача 5

Тема: Двумерные массивы.

Дана целочисленная прямоугольная матрица. Найти произведение сумм элементов каждой диагонали.

Инструкция пользователя.

Запустить командную строку (ПУСК – Все программы – Стандартные – Командная строка.

В командной строке необходимо перейти в каталог, где находиться программа. Для этого необходимо воспользоваться командой cd: “cd C:\Borland\politov\N5”, затем убедимся, что в каталоге находиться необходимая нам программа с помощью команды DIR, и запустим ее, написав ее имя.

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

Рисунок 4

Инструкция программиста.

Файл N5.cpp функции input, calc, output, test. Функция input ничего не принимает, запрашивает элементы массива. Функция calc принимает массив и возвращает произведение сумм элементов каждой диагонали. Функция output принимает выводит произведение сумм элементов каждой диагонали на экран. Функция test — тест проверки кода на взлом. Код программы в приложении Г.

Задача 8

Тема: Файлы. Часть 1.

Конец файла. Написать программу, отображающую на экране три последние строки файла.

Инструкция пользователя.

Запустить командную строку (ПУСК – Все программы – Стандартные – Командная строка.

В командной строке необходимо перейти в каталог, где находиться программа. Для этого необходимо воспользоваться командой cd: “cd C:\Borland\politov\N8”, затем убедимся, что в каталоге находиться необходимая нам программа с помощью команды DIR, и запустим ее, написав ее имя.

Программа выводит на экран три последние строки файла и копирует их в другой файл. Результат работы на рисунке 5.

Рисунок 5

Инструкция программиста.

Файл N8.cpp .

В main – подсчитывается количество строк в файле, затем исходя из этого количества, выводятся на экран три последние строки файла INPUT.txt, так же они копируются в файл OUT.txt.

Код программы в приложении Д.

Задача 12

Тема: Нахождение определенного интеграла

Написать программу, которая находит определенный интеграл методом прямоугольников и методом трапеций. Исходные данные приведены. Шаг интегрирования взять равным h=0,01. Каждый метод должен быть реализован в виде отдельной функции.

Исходные данные:

Функция f(x): f(x)= ln(1.5 + tg(x/2))

Отрезок интегрирования: [0;2]

Инструкция пользователя.

Запустить командную строку (ПУСК – Все программы – Стандартные – Командная строка.

В командной строке необходимо перейти в каталог, где находиться программа. Для этого необходимо воспользоваться командой cd: “cd C:\Borland\politov\N12”, затем убедимся, что в каталоге находиться необходимая нам программа с помощью команды DIR, и запустим ее, написав ее имя.

Программа выводит на экран результат вычисления определенного интеграла заданной функции двумя методами. Результат работы на рисунке 6.

Рисунок 6

Инструкция программиста.

Файл N12.cpp .В main – поочередно вызываются две функции вычисления интеграла заданной функции: integralp – интеграл вычисляется методом прямоугольников, integralt – интеграл вычисляется методом трапеций. В функции integralp и integralt передаются: нижний предел, верхний предел, указатель на функцию. Функции возвращают результат вычислений в формате float. Далее в main поочередно выводятся результаты вычислений. Код программы в приложении Ж.

Задача 6

Тема: Динамически распределяемая память. Часть 1.

С одномерным динамическим массивом, состоящим из n целочисленных элементов, произвести следующие операции:

1) вычислить сумму тех элементов, которые делятся либо на 2 либо на 3;

2) вычислить сумму чисел, которые больше, чем их правые соседи;

3) инвертировать порядок элементов массива, начиная после максимального элемента и до конца.

Инструкция пользователя.

Запустить командную строку (ПУСК – Все программы – Стандартные – Командная строка.

В командной строке необходимо перейти в каталог, где находиться программа. Для этого необходимо воспользоваться командой cd: “cd C:\Borland\politov\N6”, затем убедимся, что в каталоге находиться необходимая нам программа с помощью команды DIR, и запустим ее, написав ее имя.

Программа выводит на экран:

1) сумму тех элементов, которые делятся либо на 2 либо на 3;

2) сумму чисел, которые больше, чем их правые соседи;

3) инвертированный порядок элементов массива, начиная после максимального элемента и до конца.

Пользователю, при первом запросе необходимо ввести количество элементов массива, при втором запросе сами элементы массива.

Результат работы на рисунке 7.

Рисунок 7

Инструкция программиста.

Файл N6.cpp .

Функция sum23 вычисляет сумму тех элементов, которые делятся либо на 2 либо на 3. Параметры функции: адрес на начальный элемент массива, количество элементов данного массива. Возвращаемое значение: сумма тип long.

Функция sumBol вычисляет сумму чисел, которые больше, чем их правые соседи. Параметры функции: адрес на начальный элемент массива, количество элементов данного массива. Возвращаемое значение: сумма тип long.

Функция invert инвертирует порядок элементов массива, начиная после максимального элемента и до конца. Параметры функции: адрес на начальный элемент массива, количество элементов данного массива.

Функция ничего не возвращает, а изменяет исходный массив.

Код программы в приложении К.

Задача 3

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

Делимость числа. Написать функцию, которая определяет делимость числа на первые 16 простых чисел. Делимость на каждое число записывается в соответствующий бит возвращаемого числа. Делимость на 2 – первый бит, на 3 – второй, на 5 – третий, на 7 – четвертый – и т.д. Например:

Если аргументом функции будет число 45 (5*5*3), то функция должна возвратить число 6 (00000110), так как 45 делится на 5 и на 3 и не делится ни на 2 и ни на 7 и не на другие простые множители.

Инструкция пользователя.

Запустить командную строку (ПУСК – Все программы – Стандартные – Командная строка. В командной строке необходимо перейти в каталог, где находиться программа. Для этого необходимо воспользоваться командой cd: “cd C:\Borland\politov\N3”, затем убедимся, что в каталоге находиться необходимая нам программа с помощью команды DIR, и запустим ее, написав ее имя. Программа выводит на экран число, соответствующее делимости введенного числа. Допустим, введено число 2, которое делится на 1 и 2, этим числам соответствуют биты 0 и 1. Программа установит эти биты в 1 и получим число в двоичной системе счисления «0000 0011», в десятичной системе счисления это число 3, которое будет выведено на экран. Пользователю, при первом запросе необходимо ввести число, которое будет проверяться на делимость.

Результат работы на рисунке 8.

Рисунок 8

Инструкция программиста.

Файл N3.cpp .Функция calc вычисляет делимость введенного числа на первые 16 чисел, путем установки битов в 1 (соответствие битов и делимости на число: 0 бит – число делится на 1, 1 бит – число делится на 2 и т.д.). Параметры функции: адрес введенного пользователем числа. Функция ничего не возвращает.

Код программы в приложении Л.

Приложение А

Исходный код программы 1

1)Main.cpp

#include «my.h»

void main ()

{

clrscr();

float a,b,c,a2,b2,c2,proizved;

test();

input(&a,&b,&c,&a2,&b2,&c2);

calck(a,b,c,a2,b2,c2,&a,&b,&c);

output (a,b,c);

}

void input (float *pa, float *pb, float *pc,float *pa2, float *pb2, float *pc2)

{

printf («\n vvedite koordinaty pervogo vectora\n»);

int er1=scanf («\n%f %f %f»,pa,pb,pc);

printf («\n vvedite koordinaty vtorogo vectora\n»);

er1+=scanf («\n%f %f %f»,pa2,pb2,pc2);

if (er1!=6)

{

printf («input error1»);

if (!getch())

getch();

exit(1);

}

}

void output (float x,float y,float z)

{

printf («%f, %f, %f»,x,y,z);

if (!getch())

getch();

}

2)Calc.cpp

#include

#include

void calck (float ax, float ay, float az,float bx, float by, float bz, float *pa, float *pb, float *pc)

{

*pa=ay*bz-az*by;

*pb=az*bx-ax*bz;

*pc=ax*by-ay*bx;

}

3)Test.cpp

#include «my.h»

void test ()

{

float ax=1, ay=-2,az=1,bx=2,by=0,bz=-3;

calck(ax,ay,az,bx,by,bz,&ax,&ay,&az);

if ((ax!=6)||(ay!=5)||(az!=4))

{

printf («Proizoshla oshibka\n Nomer oshibki #504\n Obratites’ k razrabotchiku»);

exit(1);

}

printf («Programma zavershila samotestirovanie bez oshibok\n»);

}



Страницы: Первая | 1 | 2 | 3 | ... | Вперед → | Последняя | Весь текст




map