Обменять значения двух переменных, используя третью (буферную) переменную.
x — первая переменная;
y — вторая переменная;
b — буферная переменная (для хранения значения другой переменной).
Обмен значений двух переменных протекает по следующему алгоритму:
- В буферной переменной сохраняется значение первой переменной.
- Первой переменной присваивается значение второй.
- Второй переменной присваивается значение буферной переменной, это значение равно старому значению первой переменной.
Вывести на экран введенные пользователем данные в полях шириной, заданной по умолчанию, и полях шириной, определяемой пользователем.
Получить от пользователя данные, обработать их и вывести на экран
Вывести на экран действительное число в различных форматах представления.
Допустим, организации часто требуется красить баки цилиндрической формы. При этом они красят только верхнюю часть и стенки с внешней стороны.
Организации требуется программа, которая бы определяла, сколько банок краски необходимо для покраски того или иного бака.
Программирование линейных алгоритмов на языке Паскаль в PascalABC NET
Программа должна запрашивать у пользователя следующую информацию:
- диаметр бака;
- высота бака;
- расход краски (площадь поверхности, которую можно покрасить одной банкой краски).В результате программа должна выдавать количество требуемых банок. При получении дробного числа округление должно всегда происходить в большую сторону.
Площадь крыши бака (круга) вычисляется по формуле 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 .
Источник: al-shell.ru
ЛИНЕЙНЫЕ АЛГОРИТМЫ
Алгоритмические действия над исходными данными и рабочими объектами языка, необходимые для решения поставленной задачи описываются при помощи операторов Турбо Паскаля. Операторы разделяются точкой с запятой, их последовательность и составляет тело программы. Наиболее простой случай представляют собой линейные алгоритмы. При выполнении линейных участков алгоритма операторы выполняются последовательно друг за другом в том порядке, в котором они перечислены в программе. При этом могут использоваться операторы присваивания, операции ввода и вывода.
ОПЕРАТОР ПРИСВАИВАНИЯ
Оператор присваивания используется для задания значения переменных и имеет следующий синтаксис: имя_переменной := выражение; Вычисляется выражение, стоящее в правой части оператора, после чего его значение записывается в переменную, имя которой стоит слева. Тип выражения и тип переменной должны быть совместимы, т.е. множество допустимых значений для типа выражения содержится во множестве допустимых значений для типа переменной.
ПРОСТЕЙШИЙ ВВОД И ВЫВОД
Рассмотрим простейшие процедуры ввода и вывода. По умолчанию ввод осуществляется с клавиатуры, а вывод на экран.
К операторам ввода относятся: R ead ( ); Readln ( ); Readln ; Второй отличается от первого тем, что после ввода переводит курсор на новую строку, точнее, в конце своей работы считывает с клавиатуры код клавиши Enter >. Третий оператор используется для организации паузы — выполнение программы продолжится, как правило, только после нажатия на клавиатуре клавиши Enter >. К операторам вывода относятся: W rite ( ); W riteln ( ); W riteln ; В списке вывода кроме имен переменных можно писать строковые константы (последовательность символов в апострофах) и даже выражения (выводятся их значения). Второй оператор отличается от первого тем, что после вывода переводит курсор на новую строку.
Третий оператор просто переводит курсор на новую строку. Существует так называемый форматированный вывод. Можно задать количество позиций, отводимых под число. Для целых — после выражения или переменной через двоеточие указывается меньше какого количества позиций не может быть выделено значению.
Для вещественных — дополнительно через двоеточие можно указать количество цифр в дробной части. При этом происходит округление в ближнюю сторону. Практическая часть: Запустите ТР. Решите и наберите следующую задачу: Найти сумму 3 натуральных чисел. Ctrl – F 9 Alt – F 5 Домашнее задание: Кирнос В.Н. «Язык Паскаль и численные методы» Задачи: 2.5, 2.6, 2.7, 2.8 Конспект § 2
Источник: doc4web.ru
Линейная функция y = kx + b. Решаем в Pascal
В этой публикации мы разберем, как находить координаты точек математической функции y = kx + b. С помощью программы мы найдем две координаты для построения графика. Напомню, что график данной функции — прямая .
Перед тем, как начать, покажу вам, как от значения k и b зависит положение графика, это так, на всякий случай.
Небольшая памятка.
В конце публикации — ссылка на код на Яндекс.Диске.
1. Переменные для программы
Набор переменных
Смотрим: х1 и у1 нам нужны для первого набора точек, х2 и у2 — для второго. Ну и, само собой, k и b . Тип данных выберем вещественный, так как такая функция может легко содержать в себе дроби.
2. Введем k и b
Начинаем задавать значения нашего уравнения
Просто введем пару пригласительных сообщений, для наглядности, и сделаем возможность вводить переменные.
3. Задаем точки (х) функции
Задаем иксы
Так же, как и в предыдущем примере предложим пользователю ввести значения точек-иксов.
В конце, перед самим решением функции выведем его полностью, уже с нашими введенными значениями. Для наглядности, опять таки.
4. Решение функции
Решаем два уравнения
Решим два простеньких уравнения для каждой из заданных точек (х1 и х2). Готово! Функция решена, точки найдены. Остается только красиво это все вывести.
5. Выводим результаты
Покажем пользователю результат
Выглядит страшно, но при работе программы все ровно наоборот. Такой подробный вывод не является обязательным, но чем красивше, тем лучше, верно ?
6. Тестирование
Тестируем программу
Так выглядит тест программы, для первого теста были взяты значения х и , потому что функция является линейной, и брать эти значения проще всего.
Программа не строит график самостоятельно ( хотя на Delphi это более чем возможно реализовать, ну об этом в будущем ), но для этого теста я построил график с найденными точками.
График для найденных координат
7. Конец
Чтож, программа доделана, код, как и обещал, кидаю ниже: