Лабораторная работа №2.
“Программирование линейных вычислительных процессов”
Цель работы: освоение составления алгоритмов линейных вычислительных процессов и организации программ с использованием простых операторов.
Теоретическая часть
Алгоритм линейной структуры является простейшим примером алгоритма. Он применяется для вычислительных процессов, в которых операции выполняются в строго определенной последовательности.
2.1.1 Структура программы и основные операторы языка программирования C++.
Программа на языке C++ состоит из следующих частей: директивы препроцессора, заголовок программы, раздел описаний и операторная часть.
Основные операторы языка С++:
Оператор присваивания:
a=100;(простой)
a=b=c=-0.5;(многоместный)
x+=0.5; (совмещенный)
Оператор безусловного перехода:
goto m10;
m10: операторN;
Составной оператор: группа простых или составных операторов, объединенных операторными скобками { и }.
{оператор1;
оператор2;
}
Оператор вывода.
printf(“управляющая строка”, список вывода);
printf(“%d”,b);
printf(“\nx=%4d \ny=%6.2f”,x,y);
Список вывода содержит имена тех переменных, значения которых будут выводиться на экран. Каждому имени переменной в списке вывода должна соответствовать форматная спецификация заданного типа.
Управляющая строка определяет форму вывода информации и может включать в себя поясняющий текст, форматные спецификации и символ перевода строки.
Форматные спецификации содержат знак % и символ, соответствующий типу вводимой информации:
Для вывода данных в конкретном формате в форматной спецификации необходимо указать нужный формат:
– для целых чисел:
%[-][h],
где [-] – выравнивание записи по левому краю,
[h] – число, определяющее количество позиций под переменную.
– для вещественных чисел:
%[-][h][.t],
где [.t] – количество позиций, отводимых под дробную часть.
Операторы ввода данных.
1). Оператор присваивания:
a=17.5;
b=1.4*sin(0.3);
2). Оператор scanf:
scanf(“управляющая строка”, список ввода);
scanf(“%d”,&b);
scanf(“%d%f”,&x,&y);
Список ввода – это список указателей, которые определяют, где будут располагаться введенные данные, поэтому перед именами переменных списков указателей ставится знак &.
2.1.2 Пример составления алгоритма и программы на языке C++ для линейного вычислительного процесса.
Задание:
Составить алгоритм и программу, выполняющую вычисление площади S треугольника с заданными сторонами a, b, c. Значения a, b и c вводятся с клавиатуры, результат вычислений (значение переменной S) выводится на экран.
Решение.
Блок-схема алгоритма для данной задачи выглядит следующим образом:
Программа на языке C++, выполняющая решение данной задачи:
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main()
{
float a,b,c,p,S;
clrscr();
printf(“Введите a, b и c:\n”);
scanf(“%f”,&a);
scanf(“%f”,&b);
scanf(“%f”,&c);
p=(a+b+c)/2;
S=sqrt(p*(p-a)*(p-b)*(p-c));
printf(“\nS = %.2f”,S);
getch();
return 0;
}
Практическая часть
2.2.1 Требования к выполнению работы:
Выполнить вычисления для переменных в соответствии с вариантом индивидуального задания из таблицы 2.
Порядок выполнения работы.
1. Выполнить анализ задания, сформулировать постановку задачи.
2. Составить блок-схему алгоритма.
3. Составить программу на языке C++. Предусмотреть ввод исходных данных с клавиатуры и вывод результатов на экран.
4. Выполнить проверку работоспособности программы на различных исходных данных.
5. Выполнить анализ полученных результатов.
Варианты индивидуальных заданий.
Варианты индивидуальных заданий выбираются из таблицы 2 в соответствии с номером студента в списке группы в журнале преподавателя.
Таблица 2. Варианты индивидуальных заданий
№ п/п | Вид задания | Тип исходных данных | Выводимые данные |
a – целое b – действительное | a, b, x, y, z | ||
c – целое d – действительное | c, d, p, q, r | ||
n – целое x – действительное | n, x, y, f, t | ||
a – целое b – действительное | a, b, n, m, k | ||
i – целое j – действительное | i, j, x, y, z | ||
e – целое g – действительное | e, g, x, y, f |
m – целое x – действительное | m, x, s, t, v | ||
c – целое d – действительное | c, d, n, m, k | ||
a – целое h – действительное | a, h, x, y, z | ||
b – целое d – действительное | b, d, p, q, r | ||
x – целое l – действительное | l, x, y, p, g | ||
a – целое b – действительное | a, b, i, j, k | ||
m – целое n – действительное | m, n, x, y, z | ||
e – целое a – действительное | e, a, x, z, r | ||
c – целое d – действительное | c, d, s, t, v | ||
p – целое q – действительное | p, q, n, m, k | ||
a – целое k – действительное | a, k, x, y, z | ||
a – целое b – действительное | a, b, i, j, k | ||
x – целое v – действительное | x, v, y, p, q | ||
n – целое p – действительное | n, p, y, f, z | ||
a – целое k – действительное | a, k, x, y, t | ||
a – целое b – действительное | a, b, c, d, e | ||
x – целое y – действительное | x, y, s, p, q | ||
a – действительное c – целое | a, c, x, y, z | ||
a – целое h – действительное | a, h, s, p, t | ||
x – целое b – действительное | x, b, y, p, s | ||
n – целое k – действительное | n, k, y, x, z |
2.3 Контрольные вопросы и практические задания:
1. Что представляет собой структура программы на языке C++?
2. Какие типы данных используются в простых программах?
3. Какие функции выполняют операторы в языке программирования?
4. Как работают операторы присваивания?
5. Какие требованиям должны отвечать аргументы математических функций?