Алгоритм решения линейного уравнения на паскале

Алгоритм решения линейного уравнения на паскале

Обменять значения двух переменных, используя третью (буферную) переменную.

x — первая переменная;
y — вторая переменная;
b — буферная переменная (для хранения значения другой переменной).

Обмен значений двух переменных протекает по следующему алгоритму:

  1. В буферной переменной сохраняется значение первой переменной.
  2. Первой переменной присваивается значение второй.
  3. Второй переменной присваивается значение буферной переменной, это значение равно старому значению первой переменной.

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

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

Вывести на экран действительное число в различных форматах представления.

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

Организации требуется программа, которая бы определяла, сколько банок краски необходимо для покраски того или иного бака.

Программа должна запрашивать у пользователя следующую информацию:

  • диаметр бака;
  • высота бака;
  • расход краски (площадь поверхности, которую можно покрасить одной банкой краски).В результате программа должна выдавать количество требуемых банок. При получении дробного числа округление должно всегда происходить в большую сторону.

Площадь крыши бака (круга) вычисляется по формуле p * d 2 /4 (где p – число пи, d — диаметр).
Площадь боковой поверхности цилиндра: p * d * h (где h – высота).

Стандартная функция trunc выполняет «отбрасывание» дробной части и возвращает целое число.

Месячная выплата m по займу в s рублей на n лет под процент p вычисляется по формуле:
m = (s * r * (1 + r) n ) / (12 * ((1 + r) n – 1)), где r = p / 100.

Программа, вычисляющая значение m (месячную выплату) по известным s (сумме займа), p (проценту) и n (количеству лет), может выглядеть так:

Урок 30

3.4.2. Составной оператор

В условном операторе и после then, и после else можно исполь­зовать только один оператор. Если при некотором условии требует­ся выполнить определённую последовательность операторов, то их объединяют в один составной оператор.
Конструкция вида

begin end

называется составным оператором .

Пример. Алгоритм решения квадратного уравнения вам хорошо известен. Запишем соответствующую программу на языке Паскаль.

program n_11;

var a, b, с: real;
var d: real;
var x, x1, x2: real;

begin

writeln (‘Решение квадратного уравнения ‘) ;
write (‘Введите коэффициенты а, b, c>>’);
readln (a, b, с);
d:=b*b-4*a*c;
if d
if d=0 then

begin

x:=-b/2/a;
writeln (‘Корень уравнения х=’, х:9:3)

end;

if d>0 then

begin

x1:=(-b+sqrt(d))/2/a;
x2:=(-b-sqrt(d))/2/a;
writeln (‘Корни уравнения:’) ;
writeln (‘x1=’, x1:9:3);
writeln (‘x2=’, x2:9:3)

end

end.

3.4.3. Многообразие способов записи ветвлений

В качестве оператора после then и else можно использовать условный оператор. Например, возможна следующая конструкция:

if then

if then
else

При использовании таких сложных конструкций (их ещё называ­ют вложенными ветвлениями) следует иметь в виду, что else всегда относится к ближайшему оператору if.

Пример. Воспользуемся вложенным ветвлением для записи на языке Паскаль рассмотренного в п. 2.4.2 (пример 10) алгоритма ре­шения линейного уравнения.

program n_12;

var a, b, x: real;

begin

writeln (‘Решение линейного уравнения’);
write (‘Введите коэффициенты а, b>>’);
readln (a, b);
if a<>0 then

begin

x:=-b/a;
writeln (‘Корень уравнения х=’, х:9:3)

end

else if b

else writeln (‘ x — любое число’);

end.

Как правило, для решения одной и той же задачи можно предло­жить несколько алгоритмов. Убедимся в этом, записав программу решения линейного уравнения, не прибегая к вложенным ветвле­ниям.

program n_l3;

var a, b, x: real;

begin

writeln (‘Решение линейного уравнения’);
write (‘Введите коэффициенты а, b>>’);
readln (a, b);
if а<>0 then

begin
x:=-b/a;
writeln (‘Корень уравнения х=’, х:9:3):

end;

if (a=0) and (b<>0) then writeln (‘Корней нет’);

if (a=0) and (b=0) then writeln (‘x — любое число’);

end.

Возможно, второй вариант программы покажется вам более на­глядным. Но и у первого варианта есть свои преимущества: в нём делается меньше проверок.

Используйте вложенные ветвления для записи программы, определя­ющей принадлежность точки х отрезку [а, b].

Вопросы и задания

1. Ознакомьтесь с материалами презентации к параграфу, содержащейся в электронном приложении к учебнику. Используйте эти материалы при подготовке ответов на вопросы и выполне­нии заданий.

2. Как на языке Паскаль записывается полное и неполное ветвление?

3. Является ли условным оператором следующая последовательность символов?

а) if x =y then x:=0; y:=0 else write(z)
в) if x

4. Что такое составной оператор? Для чего он используется в условном операторе?

5. Дан условный оператор:

if a 5 then с: =2

else с:=3

Какое значение имеет переменная а, если в результате выпол­нения условного оператора переменной с присваивается значе­ние 3?

Линейные алгоритмы на языке программирования Паскаль

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

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

Структура программы на языке Паскаль

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

Заголовок программы

Текст программы начинается со слова program. После него записывается имя программы. Данная строка носит информативный характер и ее можно не писать.

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

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

Раздел описания переменных

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

Комментарии в программе можно записывать внутри фигурных скобок. Они игнорируются во время выполнения программы. Эти пояснения вы пишите только для себя.

В нашем примере переменные с именами X и Y используются для хранения исходных данных. Переменная с именем Z используется для хранения результата вычислений.

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

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

Принадлежность переменной к типу integer означает, что она может хранить только целые числа. Если требуется хранить действительные (дробные) числа, тогда используется тип real.

Тело программы

Все что находится между служебными словами Begin и end — тело программы. Здесь записываются основные команды.

Оператор присваивания значений переменным имеет следующую структуру: переменная := выражение

Значок : = (двоеточие, равно) читается как «присвоить».
Умножение обозначается символом * (звездочка), деление — символом / (слеш).

Вывод результата выполняет команда write или print.

Каждая строка содержащая команду на языке Паскаль обязательно заканчивается символом «точка с запятой«.

Команды в Паскаль для ввода и вывода данных

Команда Read

В первом примере мы присвоили значения переменным непосредственно в тексте программы. Но так как программа пишется для решения множества однотипных задач, то удобнее задавать значения переменным во время ее работы. Для этого применяется команда read, которая позволяет ввести текстовые или числовые данные с клавиатуры.

Модифицируем код программы из примера выше.

Теперь ввод значений переменных Х и У будет осуществляться по запросу работающей программы. В этот момент нужно будет с клавиатуры ввести два числа через пробел и нажать клавишу Enter, чтобы продолжить выполнение программы.

При работающей программе в системе программирования PascalABC появится строка ввода данных. Там и пишутся значения переменных.

Команда Write

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

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


У нас появились подсказки. Посмотрите на команду write. В качестве ее аргумента был использован текст, заключенный в апострофы. И еще, появилось окончание ln у оператора write. Именно оно заставляет последующий вывод информации делать с новой строки. Это же окончание можно использовать совместно с оператором read.

Readln и Writeln в паскале — это модифицированные команды Read и Write. В командах добавлено окончание ln (line new — новая строка). Такая форма операторов делает последующий вывод информации, при работе программы, с новой строки.

Также поменялся вывод результата. Здесь тоже появилась подсказка.

Примеры программ на паскале — задания на линейные алгоритмы

Задание 1. Модифицировать программу так, чтобы она вычисляла и выводила на экран сумму и произведение трех целых чисел.

Решение:

Задание 2. Дана длина ребра куба а. Найти объем куба V=a 3 и площадь его поверхности S=6a 2 .


источники:

http://informatika-ru.ucoz.com/index/urok30/0-69

http://infouch.ru/lineynye-algoritmy-na-yazyke-programmirovaniya-paskal/