В данной статье мы разберем программу на python для решения линейного уравнения Программа решает уравнение вида ax = b. Коэффициенты a и b задаются пользователем с клавиатуры. Программа находит решение и выводит его на экран. Если решений бесконечное количество или их нет, то программа оповещает об этом.
Все возможные решения линейного уравнения можно описать так
Если a = 0 и b = 0, то решений бесконечное количество.
Если a = 0 и b ≠ 0, то решений нет.
Если a ≠ 0, то единственное решение будет равно b / a.
Для задания коэффициентов с клавиатуры в Python используется функция ввода вещественного числа float(input()). Подробно о вводе информации с клавиатуры в python
a = float(input(«Введите коэффициент a «))
b = float(input(«Введите коэффициент b «))
В Python, чтобы проверить равенство двух объектов, используется ==, для проверки неравенства объектов используется !=. Для проверки двух условий одновременно используется оператор and. Подробно об условиях в python
Возврат нескольких значений функции через указатели. Функция возвращает несколько значений. #49
Программа на Python для решения линейного уравнения
a = float(input(«Введите коэффициент a «))
b = float(input(«Введите коэффициент b «))
if (a == 0 and b == 0):
print(«Бесконечное количество решений.»)
if (a == 0 and b != 0):
print(«Решений нет.»)
if (a != 0):
print(b/a))
Полезно почитать по теме условия в Python примеры
Пример анкеты, опроса на Python
Информатика
Лабораторный практикум по программированию (Бейсик)
Сборник лабораторных работ по языку программирования Basic.
Лабораторная работа №1 «Команда ввода»
ПРИМЕЧАНИЕ: Результаты работы программ и ответы на вопросы записывать в тетрадь.
Задача 1.
Записать в ОП программу:
PRINT «Добрый день»
PRINT « Вычислить произведение чисел А, Х»
А = 5
Х = 4
В = А * Х
PRINT A, X, B
Исполнить программу. Что появилось на экране?
Задача 2.
Изменить последнюю строку:
Исполнить программу. Что появилось на экране? Чем отличается результат от предыдущего?
Задача 3.
Удалить последнюю строку, дописать в программу строки:
Исполнить программу. Что на экране?
Изменить в программе три последние строки:
Исполнить программу. Что на экране?
Задача 4.
Удалить три последние строки.
Исполнить программу. Что на экране?
Контрольное задание к лабораторной работе.
Написать программу вычисления площади трапеции для а = 2.3; в =4.5; h = 5. Вывести на экран исходные данные и результат.
Лабораторная работа №2 «Ввод и редактирование линейных программ»
Цель: Научиться вводить линейные программы. Познакомиться со стандарной функцией INT.
1. Составить программу для подсчета значений функции: y=0.3X^2-1.25X^3+5.64X-8.3, при Х=0.5; -8,126; 0.0015.
После появления знака вопроса набрать первое значение Х и нажать [ENTER]. Записать результат в тетрадь и повторить вычисления для других значений Х.
Напишите программу, проверяющую число, введенное с клавиатуры на четность. Домашнее задание. C++ #2.
2. Написать программу для нахождения значения выражения: Y=(AX^2+B)/(4-3C) ПРИ A=3; B=3; C=2; X=1.
3. Нахождение целой части от числа с помощью функции INT.
Выполнить программу, которая находит целую часть от деления выражения Y=(А+В)/А при А=15,3; В=0,485; А=112,443; В=18,024.
INPUT A,B
Y=(A+B)/A’вычисляет значение выражения
Z=INT(Y)’ находит целую часть
PRINT “Y=”;Y,”Z=”;Z’ выводит на экран значение выражения и целую часть от него.
4. Программа нахождения остатка от деления Y=N/М, N=15, M=4; N=1234, M=25
INPUT M,N
Z=N-INT(N/M)*M’ вычисление остатка от деления
PRINT “Z=”;Z
Самостоятельная работа.
1. Написать программу для вычисления значения функции и исполнить ее для указанных значений Х.
2. Написать программу для нахождения остатка от деления Y=1986/A.
Лабораторная работа №3 «Программы ветвления. Операторы IF … THEN … ELSE, GO TO»
Цель: Научиться вводить и редактировать разветвляющиеся программы.
1. Написать программу для нахождения значения функции при х =0 y= Ö x для х=-8.34; -0.158; 1.21; 625
2. Ввести программу для нахождения НОД чисел М и N. Исполнить ее для M=1000, N=625; M=1236312, N=9822.
10 INPUT M,N
20 LET X=M
30 LET Y=N
40 PRINT X,Y
50 IF X=Y THEN 110
60 IF X>Y THEN 90
70 LET Y=Y-X
80 GOTO 50
90 LET X=X-Y
100 GOTO 50
110 PRINT “НОД ЧИСЕЛ M и N РАВЕН”;X
120 END
3. Ввести программу решения квадратного уравнения и исполнить её для следующих уравнений: 1125х^2-45x-324=0; 502x^2-38.5x+12/125=0; 16x^2-256x+1024=0.
10 PRINT “РЕШАЕМ УРАВНЕНИЕ AX^2+BX+C=0”
20 INPUT A,B,C
30 D=B^2-4*A*C
40 IF D>0 THEN 100
50 IF D=0 THEN 70
60 PRINT “Нет решения”
70 X=-B/(2*A)
80 PRINT “X1=X2=”;X
90 GOTO 130
100 X1=(-B-SQR(D))/(2*A)
110 X2=(-B+SQR(D))/(2*A)
120 PRINT “X1=”;X1,”X2=”;X2
130 END
4. НАПИСАТЬ ПРОГРАММУ ДЛЯ РЕШЕНИЯ ЛИНЕЙНОГО УРАВНЕНИЯ АХ+В=С, ПРИМЕРЫ.
Лабораторная работа №4 «Ввод и редактирование программ, содержащих циклы»
Цель: Научить вводить редактировать и составлять программы, содержащие циклы.
1. Вывести на экран дисплея значения функции Y=0.3X^3-4.15X^2-0.01X +2.25 для Х от –5 до 5
2. Ввести изменения в предыдущую программу, чтобы значения функции вычислялись с шагом 0.5. для решения этой задачи нужно изменить только первую строчку.
3. Вывести на экран таблицу умножения в виде 2*3=6
Для решения этой задачи будем использовать 2 цикла: один цикл по первому множителю, другой второму. Организуем 2 цикла, где в первом цикле первый множитель будет меняться от 1 до 5, второй от 1 до 9. Во втором цикле первый множитель будет меняться от 6 до 10, а второй также, от 1 до 9.
FOR J=1 TO 9
FOR I=1 TO 5
PRINT “I*J=”;I*J,
NEXT I
NEXT J
FOR J=1 TO 9
FOR I=6 TO 10
PRINT “ ”I” “*”J”=”;I*J
NEXT I
NEXT J
4. Генерация случайных чисел.
Функция RND(1) генерирует случайное число от 0 до 1.
После запуска на решение ЭВМ выдаст значение А>0, но A NEXT
PRINT “S=”;S, “N=”;
Самостоятельная работа.
- Написать программу заполнения и вывода на экран таблицы квадратов от 1 до 40.
- Написать и исполнить программу заполнения массива из 20 элементов по формуле Y=0.2X^2-3X+0.1 и подсчета суммы положительных элементов.
ЛАБОРАТОРНАЯ РАБОТА № 6 «ЛИНЕЙНЫЕ МАССИВЫ (ЧАСТЬ 2)»
Цель: Продолжить изучение программ по обработке массивов.
Задача 4: Составить программу для заполнения таблицы кубов и вывода ее на экран дисплея.
Задача 5: Элементы массива вычисляются по формуле Y=X^2-X-2, где Х- номер элемента, а Y- его значение. Написать программу, которая:
- Напечатает на экране первые 15 элементов;
- Подсчитает их сумму;
- Подсчитает количество отрицательных элементов;
- Обнуляет значения суммы и счетчика отрицательных элементов;
- Цикл подсчета значений элементов и выход их на экран;
- К предыдущей сумме прибавляет значение следующего элемента;
- Проверяет, будет ли он отрицательным. Если да, то увеличивает значение счетчика на 1.
DIM A(15)
S=0
K=0
FOR X=1 TO 15
A(X)=X^2-X-2
PRINT A(X);
S=S+A(X)
NEXT X
PRINT “СУММА ЭЛЕМЕНТОВ МАССИВА S=”; S
FOR X=1 TO 15
IF A(X) A(I) THEN MIN=A(I)
NEXT I
PRINT “MIN=”; MIN
FOR I=1 TO 20
IF A(I)=MIN THEN K=K+1
IF A(I)=MIN THEN PRINT “MIN=A(“I”)=”; MIN
NEXT I
PRINT “КОЛИЧЕСТВО МИНИМУМОВ К=”; K
END
Задача 2: Написать программу, которая будет сравнивать значения выражения I^2-1 и J^3-1 для целых значений I и J и будет находить при каких значениях I и J они будут равны.
DIM A(10), B(10)
FOR I=0 TO 10
A(I)=I^2-1
PRINT “A(“I”)=”;A(I)
NEXT I
FOR J=0 TO 10
B(J)=J^3-1
PRINT “B(“J”)=”;B(J)
NEXT J
FOR I=0 TO 10
FOR J=0 TO 10
IF A(I)=B(J) THEN PRINT “A(“I”)=B(“J”)=”;A(I)”=”B(J)
NEXT J
NEXT I
END
Самостоятельная работа.
Задача 1: Изменить программу к задаче так, чтобы были найдены значения I и J, при которых A(I) 0 THEN S=S+A(I,J)
IF A(I,J) 0 THEN N=N+1
IF A(X,Y)
Источник: all-equa.ru
Рассчитать значения функции f(x) в целочисленном интервале Python
Дана функция, вычисляющая значение переменной y в зависимости от переменной x . Дан интервал целых чисел, которые может принимать переменная x.
Необходимо написать программу на языке Python, которая выведет в текстовый файл result.txt значения переменной y для каждого из предложенных x .
Точность значений *у* при распечатке установить в 3 знака после запятой.
Кодировка в текстовом файле должна быть Unicode. Путь к входному и выходному файлу в коде программы нужно сделать относительным.
Сваял вот такое:
import math import cmath f = open(‘source_data.txt’) a = f.readlines() for i in a: x = float(i.strip(‘x=’)) if x < -6: n = ((64 * x ** 7 — 44 * x ** 2 + 44) ** 5 + 56 * x ** 7) / ( (15 * x ** 7 + x ** 3) ** 3 + (34 * x ** 2 + 15) ** 4) f1 = open(«result.txt», ‘a’) f1.write(«При x = » + str(x) + » значение y = » + str(n) + «n») elif -6
Интересует правильность ввода формул, как сделать точность до 3 знаков после запятой, и конечно же ошибки которые есть в коде.
Ответы (2 шт):
import math import cmath with open(‘source_data.txt’) as f, open(«result.txt», ‘w’, encoding=»utf-8″) as f1: for i in f: x = float(i.strip(‘x=’)) if x < -6: n = ((64 * x ** 7 — 44 * x ** 2 + 44) ** 5 + 56 * x ** 7) / ( (15 * x ** 7 + x ** 3) ** 3 + (34 * x ** 2 + 15) ** 4) elif -6 значение y = n».format(x, n)) print(«».format(n))
- Я не поверял ваши вычисления.
- Я исправил ошибки в отступах.
- Я исправил ошибку в команде elif -6
- open(«result.txt», ‘w’, encoding=»utf-8″) (вместо вашего open(«result.txt», ‘a’) )
- Точность значений у при распечатке установил в 3 знака после запятой.
- . и что-то другое.
Я проверил этот код — вот мой выводной файл result.txt :
При x = 7.0 значение y = 1.125e+36-8.058e+12j При x = -4.0 значение y = 5.859e-13 При x = -10.0 значение y = 3.182e+19 При x = 0.0 значение y = 0.000e+00-8.196e+06j
После длительных «переговоров» вырисовывается следующее.
Если исходить из ДОСЛОВНОЙ трактовки вопроса, а именно — «как сделать точность до 3 знаков после запятой» оказывается, что просто написать, например
n = ((64 * x ** 7 — 44 * x ** 2 + 44) ** 5 + 56 * x ** 7) / ( (15 * x ** 7 + x ** 3) ** 3 + (34 * x ** 2 + 15) ** 4)
некорректно, потому что получаемый ответ, опять же например, при x = -10.0 дает значение y= 3.182e+19, а это НИКАК не 3 знака после запятой.
Что-бы получить именно знаки после запятой — можно написать так:
from decimal import Decimal x=10 a=(64 * x ** 7 — 44 * x ** 2 + 44) ** 5 + 56 * x ** 7 b=((15 * x ** 7 + x ** 3) ** 3 + (34 * x ** 2 + 15) ** 4) format(Decimal.from_float(a)/Decimal.from_float(b),’.3f’)
‘31812853625432199804.219’
Что в точности соответствует поставленному условию.
Источник: husl.ru
Задачи: Функции C++
Продолжая знакомить вас с функциями в C++ предлагаем самостоятельно решить несколько задач. Расположены они по уровню сложности.
1. Объявить два целочисленных массива с разными размерами и написать функцию, которая заполняет их элементы значениями и показывает на экран. Функция должна принимать два параметра – массив и его размер.
Показать код
Задача 1: функции C++
using namespace std ;
void fillAndShowArray ( int arrayForFilling [ ] , int size ) ;
const int SIZE1 = 8 ;
const int SIZE2 = 14 ;
int arrayForFilling1 [ SIZE1 ] = < >;
int arrayForFilling2 [ SIZE2 ] = < >;
fillAndShowArray ( arrayForFilling1 , SIZE1 ) ;
fillAndShowArray ( arrayForFilling2 , SIZE2 ) ;
void fillAndShowArray ( int arrayForFilling [ ] , int size )
for ( int i = 0 ; i < size ; i ++ )
arrayForFilling [ i ] = i + 1 ;
cout << arrayForFilling [ i ] << » » ;
cout << endl ;
В этой задаче удобно то, что если необходимо изменить значение размера массива, достаточно изменить соответствующую константу (SIZE1 или SIZE2). Так нам не придется менять эти значения ни в объявлении массивов, ни в параметрах при вызове функции.
Отдельно хочется сказать о передаче в функцию массива, как параметра. Мы говорили в уроке, что при вызове функции создаются точные копии переменных и все изменения происходят именно с этими копиями, а не с переменными. Так что при выходе из функции, переменные не изменят свое значение.
Если всё же надо изменить значение переменных в функции – делается это с помощью ссылок или указателей, которые мы рассмотрим в следующих уроках. С массивами дело обстоит иначе. Все что происходит с элементами массива в функции, сохраняется и после выхода из неё. Это происходит потому, что имя массива – это и есть указатель на его первый элемент.
Когда необходимо передать в функцию одномерный массив, при её определении надо указать пустые [ ] скобки после имени параметра, обозначающего массив. В нашей задаче – void fillAndShowArray ( int arrayForFilling [ ] , int size ) . Если надо передать двумерный массив – первые квадратные скобки оставляют пустыми, а во вторые надо внести значение. Например void fillAndShowArray ( int arrayForFilling [ ] [ 3 ] , int size )
Чтобы передать в функцию массив, при её вызове – достаточно использовать имя массива. Скобки и размер писать не надо (строки 14 – 15).
2. Необходимо создать двумерный массив 5 х 5. Далее написать функцию, которая заполнит его случайными числами от 30 до 60. Создать еще две функции, которые находят максимальный и минимальный элементы этого двумерного массива. (О генерации случайных чисел есть отдельная статья)
Источник: purecodecpp.com