Занятие 1. Линейные алгоритмы. Обмен значений численных переменных — КиберПедия 

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Занятие 1. Линейные алгоритмы. Обмен значений численных переменных

2021-01-31 364
Занятие 1. Линейные алгоритмы. Обмен значений численных переменных 0.00 из 5.00 0 оценок
Заказать работу

Задача

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

Пояснение к задаче и алгоритм решения

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

1-й способ. Через "буферную" переменную

1. Пусть первое введенное значение присвоено переменной a, второе - b.

2. Присвоим некой третьей переменной (например, c) значение хранимое в a. Таким образом окажется, что одно и то же значение будет сохранено в двух переменных.

3. Запишем значение переменной b в a. Таким образом, мы "затрем" прежнее содержимое a, а значение b будет храниться в двух переменных.

4. Однако значение a не потеряно, т.к. заранее было сохранено в c. Теперь мы можем присвоить переменной b значение хранимое в c.

В результате данных трех присвоений окажется, что в переменной a будет значение b, в b - значение a.

Й способ. Путем арифметических операций

1. Запишем в переменную a сумму значений двух переменных: a и b.

2. Переменной b присвоить разность между новым значением переменной a и значением b. Таким образом в b окажется старое значение a.

3. Переменной a присвоить разность между ее текущим значением и новым значением переменной b. В результате в a окажется старое значение b.

Исходный код на языке программирования Pascal

// 1- й способ:

var a,b,c: integer;
begin
 readln(a);
readln(b);
 writeln('a=',a,'; b=',b);
 c:= a;
 a:= b;
b:= c;
 writeln('a=',a,'; b=',b);
end.

// 2- й способ:

var a,b: integer;
begin
 readln(a);
 readln(b);
 writeln('a=',a,'; b=',b);
 a:= a + b;
 b:= a - b;
 a:= a - b;
 writeln('a=',a,'; b=',b);
end.

Пример(ы) выполнения программы на языке Pascal

5
6
a=5; b=6
a=6; b=5

 

 

Занятие 2. Линейные алгоритмы. Форматированный вывод данных

Задача

Продемонстрировать возможности

· вывода данных в табличной форме (с выровненными столбцами),

· выравнивания слева,

· вывода вещественных чисел с заданным количеством знаков после запятой.

Пояснение к задаче и алгоритм решения

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

В языках КуМир и Basic-256 подобных языковых возможностей найти не удалось. Если их действительно нет, то видимо потому, что данные языки являются исключительно учебными.

Исходный код на языке программирования Pascal

var
m, n: real;
 s1, s2: string [10];
begin
 m:= 1.45678;
 n:= -0.23451;
 s1:= 'Hello';
 s2:= 'world';
 writeln(m:10:2, n:10:2);
writeln(s1:10, s2:10);
 writeln;
write(s1:-9, s2);
end.

 

Пример(ы) выполнения программы на языке Pascal

 1.46 -0.23
Hello world
Helloworld

 

Особенности решения на языке программирования Pascal

В Pascal при выводе в поля заданной ширины следует указать через двоеточие после переменной (или непосредственно числа или строки) количество знакомест. При выводе вещественных чисел после указания количества знакомест также через двоеточие указывается количество знаков после запятой. Они не являются добавочными к количеству знакомест, а включены в это количество. Если для вещественного числа не указать количество цифр после запятой, то число будет выведено в экспоненциальной форме. Для выравнивания по левому краю, по аналогии с другими языками программирования, следует использовать минус перед числом-количеством знакомест. Однако для FreePascal это не сработало. Хотя компилятор не сообщил ни о какой ошибке.

 

 

Занятие 3. Линейные алгоритмы. Вычисление площадей и периметров фигур

 

Задача

Вычислить площадь и периметр

· треугольника по данным трем сторонам,

· прямоугольника по данным ширине и высоте,

· круга по заданному радиусу.

Длины сторон и радиус вводятся пользователем.

Пояснение к задаче и алгоритм решения

Площади и периметры фигур можно найти по следующим формулам.

Периметр треугольника: P = a + b + c
Площадь треугольника: S = √(p(p-a)(p-b)(p-c)), где p = P/2

Периметр прямоугольника: P = 2(a + b)
Площадь прямоугольника: S = ab

Периметр круга: P = 2πr
Площадь круга: S = πr2

Исходный код на языке программирования Pascal

var
 a,b,c: word;
 w,h: word;
 r: word;
 P,S: real;
begin
 readln(a,b,c);
 P:= (a + b + c) / 2;
 S:= sqrt(P * (P - a) * (P - b) * (P - c));
 writeln('P=',a+b+c,'; S=',S:5:2);
 readln(w,h);
 writeln('P=',(w+h)*2,'; S=',w*h);
 readln(r);
 P:= 2 * pi * r;
S:= pi * r * r;
 writeln('P=',P:5:2,'; S=',S:5:2);
end.

Пример(ы) выполнения программы на языке Pascal

5 3 5
P=13; S= 7.15
3 9
P=24; S=27
5
P=31.42; S=78.54

 


Поделиться с друзьями:

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

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



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.008 с.