Программирование линейных вычислительных процессов

Цель работы: знакомство с основами алгоритмизации и программирования линейных вычислительных процессов на языках Turbo Pascal и Си:

· Познакомиться со структурой программ.

· Изучить основные типы данных языков.

· Сформировать навыки форматированного вывода информации на экран.

· Сформировать навыки построения выражений для вычислений.

Теоретический материал

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

программирование линейных вычислительных процессов - student2.ru
Рис. 1 Размещение блоков в линейном алгоритме

Рассмотрим несколько примеров линейных алгоритмов.

ПРИМЕР 1. Зная длины трех сторон треугольника, вычислить площадь и периметр треугольника.

Пусть a, b, c - длины сторон треугольника. Необходимо найти S - площадь треугольника, P - периметр.

Для нахождения площади можно воспользоваться формулой Герона:

программирование линейных вычислительных процессов - student2.ru

где r - полупериметр

Входные данные:a, b, c.

Выходные данные:S, P.

Блок-схема алгоритма представлена на рис. 2.

программирование линейных вычислительных процессов - student2.ru

Рис. 2. Алгоритм примера 1

Внимание!!!В этих блоках знак "=" означает не математическое равенство, а операцию присваивания. Переменной, стоящей слева от оператора, присваивается значение, указанное справа. Причем это значение может быть уже определено или его необходимо вычислить с помощью выражения. Например, операция r = (a+b+c)/2 - имеет смысл (переменной r присвоить значение r=(a+b+c)/2), а выражение (a+b+c)/2=r - бессмыслица.

ПРИМЕР 2. Известны плотность и геометрические размеры цилиндрического слитка, полученного в металлургической лаборатории. Найти объем, массу и площадь основания слитка.

Входные данные:R - радиус основания цилиндра, h - высота цилиндра, ρ- плотность материала слитка.

Выходные данные:m - масса слитка, V - объем, S - площадь основания.

Блок-схема представлена на рис. 3.

программирование линейных вычислительных процессов - student2.ru
Рис. 3. Алгоритм примера 2

ПРИМЕР 3. Заданы длины двух катетов в прямоугольном треугольнике. Найти длину гипотенузы, площадь треугольника и величину его углов.

Входные данные: a, b - длины катетов.

Выходные данные: с - длина гипотенузы, S - площадь треугольника, α, β - углы.

Блок-схема представлена на рис.4.

программирование линейных вычислительных процессов - student2.ru

Рис. 4 Алгоритм примера 3

Перед тем как, процессор будет выполнять какое либо действие, он должен получить инструкцию для его выполнения в виде машинных кодов. Набор таких инструкций называется программой. Авторы первых программ писали их в машинном (двоичном) коде. Теперь программы пишутся на каком либо языке высокого уровня (Pascal, Delphi, Cи, C++, C++ Builder, Visual C++). Затем специальная программа, называемая транслятором, переводит их машинный код, который и исполняется процессором. Все трансляторы делятся на два класса:

· интерпретаторы - трансляторы, которые переводят каждый оператор программы в машинный код и по мере перевода операторы выполняются процессором;

· компиляторы переводят всю программу целиком и если перевод всей программы прошел без ошибок, то полученный двоичный код можно запускать на выполнение.

Структура программы на языке Си/С++

Первая версия языка Си была разработана в 1972 году сотрудником фирмы Bell Laboratories Денисом Ритчи. В это время он и Кен Томбсон занимались разработкой ОС UNIX. Целью создания была разработка инструмента для программистов-практиков. На основе языка Си в дальнейшем были разработаны С++ и Java. В 2000 году международной организацией по стандартизации (ISO) и американским институтом национальных стандартов (ANSI) был принят стандарт под именем Си99.

Языку Си присуща высокая степень переносимости. Это означает, что программы, написанные на Си для одной ОС, могут быть легко адаптированы для другой ОС. В настоящее время Си компилируется примерно для 40 ОС.

Чтобы подчеркнуть достоинства языка Си можно сказать, что многие компиляторы и интерпретаторы других языков программирования (Фортран, APL, Pascal, LISP, Basic) написаны на языке Си.

Программы, написанные на языке Си, применяются для решения физических и инженерных задач, а также для создания анимационных спецэффектов в кинофильмах. Например, с этой целью Си применялся в фильмах "Гладиатор" и "Звездные войны".

ОСНОВНЫЕ КОНСТРУКЦИИ ЯЗЫКА Си/С++

Программа на Си/С++

Программа, написанная на языках Cи/С++, содержит одну или более функций. Все программы должны содержать функцию с именем main() - главная. Эта функция является точкой входа в программу. Открывающая скобка “{” помещается перед первой инструкцией, а закрывающая скобка “}” - после последней. Между скобками помещаются операторы.

Оператор – предложение языка, заканчивающееся точкой с запятой «;». Различают операторы описаний, определяющие типы используемых объектов, и операторы действий, необходимых для реализации алгоритма решаемой задачи. Операторы описаний могут располагаться в любом месте программы, но до первого использования соответствующего объекта.

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

Первые строки программы обычно содержат директивы компилятору на подключение к тексту программы тех или иных заголовочных файлов библиотеки языка C. Это текстовые файлы, содержащие заголовки (прототипы) стандартных функций и имеющие расширение .h , которые обычно располагаются в каталоге INCLUDE. Каждая директива имеет вид

#include <имя заголовочного файла>.

Пример 4. Простейшая программа на языке С++.

Вычислить длину окружности и площадь круга.

1. Входные данные

цел r – радиус

Выходные данные

вещ l – длина, s – площадь

Промежуточные данные

вещ pi=3.14

Алгоритм

программирование линейных вычислительных процессов - student2.ru

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

#include <iostream.h> // заголовочный файл библиотеки потоков ввода/вывода

void main()

{

/* по введенному значению радиуса круга вычисляется

длина окружности и площадь круга */

const float pi=3.1415926;

int r; float l,s; // считаем, что радиус может принимать только целые значения

cout << “Радиус ? ”; cin>>r; // ввод исходных данных

l=2*pi*r; s=pi*r*r; // вычисления

cout<< ”длина окружности ”<<l<<endl<<”площадь круга ”<<s; // вывод результатов

cin.get(); //пауза до нажатия любой клавиши

}

Основные типы данных

Типы данных определяют множество допустимых значений и множество допустимых операций над этими значениями.

В Си/ C++ есть несколько основных типов и несколько способов создавать новые.

Простые типы

Основные типы, непосредственно отвечающие средствам аппаратного обеспечения, такие:

Наши рекомендации