Алгоритм решения линейного уравнения на паскале
Обменять значения двух переменных, используя третью (буферную) переменную.
x – первая переменная;
y – вторая переменная;
b – буферная переменная (для хранения значения другой переменной).
Обмен значений двух переменных протекает по следующему алгоритму:
- В буферной переменной сохраняется значение первой переменной.
- Первой переменной присваивается значение второй.
- Второй переменной присваивается значение буферной переменной, это значение равно старому значению первой переменной.
Вывести на экран введенные пользователем данные в полях шириной, заданной по умолчанию, и полях шириной, определяемой пользователем.
Получить от пользователя данные, обработать их и вывести на экран
Вывести на экран действительное число в различных форматах представления.
Допустим, организации часто требуется красить баки цилиндрической формы. При этом они красят только верхнюю часть и стенки с внешней стороны.
Организации требуется программа, которая бы определяла, сколько банок краски необходимо для покраски того или иного бака.
Программа должна запрашивать у пользователя следующую информацию:
- диаметр бака;
- высота бака;
- расход краски (площадь поверхности, которую можно покрасить одной банкой краски).В результате программа должна выдавать количество требуемых банок. При получении дробного числа округление должно всегда происходить в большую сторону.
Площадь крыши бака (круга) вычисляется по формуле 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 .
[spoiler title=”источники:”]
http://informatika-ru.ucoz.com/index/urok30/0-69
http://infouch.ru/lineynye-algoritmy-na-yazyke-programmirovaniya-paskal/
[/spoiler]
Формулировка задачи:
В школе задали сделать программу, которая будет считать линейные уравнения. Но я по просту не понимаю логики… Поэтому прощу помощи, у кого есть немного свободного времени и желание помочь. Буду очень благодарен. Поставлю спасибо и +реп))))
Линейное уравнение вида a*x+b=0.
Код к задаче: «Решение линейных уравнений»
textual
Листинг программы
uses Crt; var a, b, x : real; BEGIN ClrScr; Write('Введите число a = '); ReadLn(a); Write('Введите число b = '); ReadLn(b); if ((a=0) and (b=0)) then WriteLn('Уравнение имеет бесконечное множество решений: х*0 + 0 = 0.') else if ((a=0) and (b<>0)) then WriteLn('Уравнение не имеет решений.') else if (a<>0) then begin x:= -(b/a); WriteLn('x = ', x); end END.
Добрый день, товарищи!
В этой публикации мы разберем, как находить координаты точек математической функции y = kx + b. С помощью программы мы найдем две координаты для построения графика. Напомню, что график данной функции – прямая.
Перед тем, как начать, покажу вам, как от значения k и b зависит положение графика, это так, на всякий случай.
В конце публикации – ссылка на код на Яндекс.Диске.
Итак, начинаем..
1. Переменные для программы
Смотрим: х1 и у1 нам нужны для первого набора точек, х2 и у2 – для второго. Ну и, само собой, k и b. Тип данных выберем вещественный, так как такая функция может легко содержать в себе дроби.
2. Введем k и b
Просто введем пару пригласительных сообщений, для наглядности, и сделаем возможность вводить переменные.
3. Задаем точки (х) функции
Так же, как и в предыдущем примере предложим пользователю ввести значения точек-иксов.
В конце, перед самим решением функции выведем его полностью, уже с нашими введенными значениями. Для наглядности, опять таки.
4. Решение функции
Решим два простеньких уравнения для каждой из заданных точек (х1 и х2). Готово! Функция решена, точки найдены. Остается только красиво это все вывести.
5. Выводим результаты
Выглядит страшно, но при работе программы все ровно наоборот. Такой подробный вывод не является обязательным, но чем красивше, тем лучше, верно?
6. Тестирование
Так выглядит тест программы, для первого теста были взяты значения х {0} и {1}, потому что функция является линейной, и брать эти значения проще всего.
Программа не строит график самостоятельно (хотя на Delphi это более чем возможно реализовать, ну об этом в будущем), но для этого теста я построил график с найденными точками.
7. Конец
Чтож, программа доделана, код, как и обещал, кидаю ниже:
Скачать программу для Паскаля с Яндекс.Диска
Данный человек всегда открыт для обсуждения контента и общения с подписчиками, если найдутся какие либо вопросы то я обязательно постараюсь ответить на них.
По возможности я попросил бы подписаться и оценить публикацию. Сейчас это критически важно для развития канала. Так то!
Доброго вам всем здоровьица в эти трудные времена!
0 / 0 / 0 Регистрация: 27.02.2015 Сообщений: 4 |
|
1 |
|
Программа нахождения решения линейного уравнения27.02.2015, 15:45. Показов 11728. Ответов 4
Составьте программу нахождения решения линейного уравнения ах + b = 0. Заранее спасибо)
0 |
APALoff 1646 / 1075 / 1081 Регистрация: 03.07.2013 Сообщений: 4,507 |
||||
27.02.2015, 16:19 |
2 |
|||
Точно, такого в начальной школе не проходят…
0 |
Puporev Почетный модератор 64285 / 47584 / 32739 Регистрация: 18.05.2008 Сообщений: 115,182 |
||||
27.02.2015, 16:20 |
3 |
|||
1 |
1642 / 1091 / 487 Регистрация: 17.07.2012 Сообщений: 5,345 |
|
28.02.2015, 01:36 |
4 |
И как всегда еще кое-что забыли…Когда а=0, b<>0.
0 |
Puporev Почетный модератор 64285 / 47584 / 32739 Регистрация: 18.05.2008 Сообщений: 115,182 |
||||
28.02.2015, 07:17 |
5 |
|||
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
28.02.2015, 07:17 |
Помогаю со студенческими работами здесь Составить программу для решения линейного уравнения Программа нахождения корней уравнения Программа решения уравнения c факториалом Программа для решения уравнения y=begin{cases} 3x^5+a & text{, if }… Программа для решения биквадратного уравнения Заголовок темы изменен модератором. Программа решения уравнения методом бисекции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 5 |
program urav; var x, A, B: real; begin writeln('Программа для решения уравнения A * x + B = 0. '); write('Введите коэффициент А: '); readln(A); write('Введите коэффициент В: '); readln(B); x := -B / A; write('х = ', x:5:2); end.
Похожие записи/страницы:
- Решить линейное уравнение Ax + B = 0, заданное своими коэффициентами A и B (коэффициент A не равен 0) – Pascal(Паскаль)
- Найти корни квадратного уравнения A·x2 + B·x + C = 0, заданного своими коэффициентами A, B, C (коэффициент A не равен…
- Найти корни квадратного уравнения Ax^2+ Bx + C = 0, заданного своими коэффициентами A, B, C (коэффициент A не равен 0),…
- Даны шесть квадратных уравнений.Подсчитайте сумму всех действительных корней этих уравнений , если таковые…
- Решение квадратного уравнения -Pascal(Паскаль)
- Сформируйте массив, содержащий 5 элементов, с помощью датчика случайных чисел. Получите новый массив, каждый элемент…
- Написать программу для решения системы линейных уравнений a1x+b1y=c1; a2x+b2y=c2 – Pascal(Паскаль)
- Программа считывает с клавиатуры «q0», «q1, «p0», «p1» и вычисляет коэффициент эластичности – Pascal(Паскаль)