Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовые работы / Курсовик 2 семестр 1 курс.docx
Скачиваний:
34
Добавлен:
28.01.2014
Размер:
744.34 Кб
Скачать

СОДЕРЖАНИЕ

Введение 3

1 Линейный алгоритм 5

2 Алгоритм ветвления 8

3 Инструкция множественного выбора 13

4 Циклический алгоритм 16

Заключение 19

Список используемых источников 20

ВВЕДЕНИЕ

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

Языки программирования классифицируются по стилям, к которым они относятся. Выделяют процедурный, логический, функциональный и объектно-ориентированный стили.

Программа на функциональном языке представляет собой совокупность описаний функций и выражения, которые необходимо вычислить. Функциональное программирование не использует концепцию памяти как хранилища значений переменных. Операторы присваивания отсутствуют, вследствие чего переменные обозначают не области памяти, а объекта программы.

Центральным понятием в логическом программировании является отношение. Программа представляет собой совокупность определений отношений между объектами и цели. В логическом программировании нужно только специфицировать факты, на которых алгоритм основывается, а не определять последовательность шагов, которые требуется выполнить. Логические программы отличаются принципиально низким быстродействием.

Объектно-ориентированный стиль программирования характеризуется богатыми графическими возможностями и средой программирования, развитой модульной структурой программ, которая упрощает разработку сложных программных продуктов.

Структурное программирование подразумевает точно обозначенные управляющие структуры, программные блоки, отсутствие операторов перехода, автономные подпрограммы, в которых поддерживается рекурсия и локальные переменные. В структурном программировании появилась возможность разбиения программы на составляющие элементы. К структурным языкам относятся: Фортран, Алгол, Паскаль, Си.

Си - процедурный язык программирования, разработанный в начале 1970-х Кеном Томпсоном и Денисом Ритчи. Си был создан для использования в операционной системе UNIX.

Система типов в Си подобна типам в других потомках Алгола, таких, как Паскаль. В Си имеются типы целых чисел различных размеров, со знаком и без, чисел, с плавающей запятой; символов, перечисляемых типов и записей-структур.

В Си есть три разных способа выделения памяти для объектов:

  1. Статическое выделение памяти: пространство для объектов создаётся в сегменте данных программы в момент компиляции;

  2. Автоматическое выделение памяти: объекты можно временно хранить в стеке; эта память затем автоматически освобождается и может быть использована снова, после того, как программа выходит из блока, использующего её;

  3. Динамическое выделение памяти: блоки памяти нужного размера могут запрашиваться во время выполнения программы с помощью библиотечных функций из области памяти, называемой кучей. Эти блоки освобождаются и могут быть использованы снова после вызова для них функции free.

Язык Си был создан уже после внедрения стандарта ASCII, поэтому использует почти все его графические символы (нет только $ @ `).

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

Линейный алгоритм - алгоритм, все этапы которого выполняются однократно и строго последовательно.

В данной задаче необходимо рассчитать значения функций W и Y.

(1)

(2)

Составим блок-схему решения задачи (рисунок 1).

Рисунок 1 – Блок-схема программы с линейным алгоритмом

  1. Начало алгоритма;

  2. Задание значений: a, x, b – переменные, заданные условием задачи;

  3. Вычисление функции R по формуле 1;

  4. Вычисление функции S по формуле 2;

  5. Вывод полученных значений R и S;

  6. Конец алгоритма.

Реализация данного алгоритма на языке Си имеет вид: #include "stdafx.h"

#include <iostream>

#include "conio.h"

#include "math.h"

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

{

setlocale(0, "rus");

double a, b, x, R, S;

a=0.7;

b=0.05;

x=0.5;

printf("\t\t СРС - использование математических формул\n\n");

printf(" Посчитать значение функции\n\n");

printf("\tR = x^2*(x-1)/b -(sin(x+a))^2 \n\n");

R=pow(x, 2)*(x+1)/b-pow(sin(x+a),2);

printf(" R = %.2f", R);

printf("\n\n Посчитать значение функции\n\n");

printf("\tS = sqrt(x*b/a)+(cos(x+b)^3)^2\n\n");

S=sqrt(x*b/a)+pow(cos(pow((x+b),3)), 2);

printf(" S = %.2f", S);

getch();

return 0;

}

Результат работы данной программы приведен на рисунке 2.

Рисунок 2 – Результат работы программы с линейным алгоритмом

Сделаем проверку работы программы в Excel. Для этого создадим таблицу значений, которая будет содержать исходные данные - значения переменных a, b и x, и в любые две ячейки занесем заданные формулы для расчета функций.

Рисунок 3 – Проверка работы программы с линейным алгоритмом в Excel

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

2 Алгоритм ветвления

Алгоритм ветвления – алгоритм, в котором происходит проверка условия и, в зависимости от результатов проверки, выполнение того или иного действия или последовательности действий.

Нужно вычислить значения функции на интервале значений абсциссы, учитывая, что при различных значениях bx, функция будет рассчитываться по разным формулам, а именно:

Составим блок-схему решения задачи (рисунок 4).

Рисунок 4 – Блок-схема программы с алгоритмом ветвления

  1. Начало алгоритма;

  2. Задание значений: b – переменная, заданная условием задачи; step – определение шага изменения переменной x. min, max – интервал значений переменной x;

  3. Присвоение переменной x начального значения;

  4. Проверка условия, что переменная x не достигла конечного значения;

  5. Проверка условия, что b*x<1;

  6. Присвоение значения переменной y по формуле 1;

  7. Проверка условия, что b*x=1;

  8. Присвоение значения переменной y по формуле 2;

  9. Проверка условия, что x находится в диапазоне b*x>1;

  10. Присвоение значения переменной y по формуле 3;

  11. Наращение переменной x на величину шага;

  12. Вывод значения функции Q на экран;

  13. Конец алгоритма.

Данный алгоритм в виде кода на языке Си будет иметь вид:

#include "stdafx.h"

#include <iostream>

#include "conio.h"

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

{

setlocale(0, "rus");

float x, min, max, step, b, Q;

b=1.5;

min=0.2;

max=3.0;

step=0.2;

x=min;

printf("\t\t\tРасчет значений функции\n\n");

printf("\t\t*************************************\n");

printf("\t\t** x ** y **\n");

printf("\t\t*************************************\n");

while (x<=(max+step))

{

if ((b*x)<1)

{

Q=b*x-log(b*x);

}

else if ((b*x)==1)

{

Q=1;

}

else

{

Q=b*x+log(b*x);

}

printf("\t\t** %.1f\t** %.2f\t **\n", x, Q);

x+=step;

}

printf("\t\t*************************************\n");

getch();

return 0;

}

Результат программы можно увидеть на рисунке 5.

Рисунок 5 – Результат работы программы с алгоритмом ветвления

Выполним проверку в Excel: создадим таблицу со значениями заданной переменной a и шагом. Зададим интервал значений x. Поле значения функции запишем формулу, учитывающую условия задачи. Применим полученную формулу ко всем значениям переменной x. На основе полученной таблицы значений x и y построим график.

Рисунок 6 – Проверка работы программы с алгоритмом ветвления в Excel

Сравним полученные значения функции (рисунок 6) с результатом работы программы и убедимся, что программа составлена правильно.

Соседние файлы в папке курсовые работы