Программа выполняющая сложение двух чисел

Исходник простой программы, выполняющей сложение двух, введенных с клавиатуры чисел. Открывается программами Pascal ABC, Pascal ABC.Net и Turbo Pascal. Имеет не скомпилированный формат для редактирования .pas.

Разобраться в коде данного исходника можно с помощью урока №2 — основные операторы, простые действия.

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

Комплексные числа состоят из действительной и мнимой частей, обе являются вещественными числами. Например, 1.5+0.3i. Здесь 1.5 — действительная часть, 0.3 — мнимая часть, i — так называемая мнимая единица. Части комплексных чисел могут быть отрицательными величинами. Например, -3+1.5i, 2-2i, -10.5-1.25i.

Если даны комплексные числа a и b, где их действительные части обозначены как a.x и b.x, а мнимые — как a.y и b.y, то их сумма и произведение находятся по формулам:
a + b = (a.x + b.x) + (a.y + b.y)i
a * b = (a.x * b.x — a.y * b.y) + (a.x * b.y + a.y * b.x)i

В задаче используется структура данных (запись), представляющая комплексное число. Структура содержит два поля для хранения действительной и мнимой части. Для каждого комплексного числа используется переменная типа объявленной структуры.

type
complex = record
x : real ;
y : real ;
end ;

var
a , b , sum , mult : complex ;

begin
writeln ( ‘Число A’ ) ;
write ( ‘ действ. часть: ‘ ) ; readln ( a . x ) ;
write ( ‘ мнимая часть: ‘ ) ; readln ( a . y ) ;
writeln ( ‘Число B’ ) ;
write ( ‘ действ. часть: ‘ ) ; readln ( b . x ) ;
write ( ‘ мнимая часть: ‘ ) ; readln ( b . y ) ;

sum . x : = a . x + b . x ;
sum . y : = a . y + b . y ;
mult . x : = a . x * b . x — a . y * b . y ;
mult . y : = a . y * b . x + a . x * b . y ;
writeln ( ‘Сумма: ‘ , sum . x : 2 : 2 , ‘+’ , sum . y : 2 : 2 , ‘j’ ) ;
writeln ( ‘Произв.: ‘ , mult . x : 2 : 2 , ‘+’ , mult . y : 2 : 2 , ‘j’ ) ;
end .

#include
struct complex < float x , y ; >;
main ( ) <
struct complex a , b , sum , mult ;
printf ( "Число A
" ) ;
printf ( " действ. часть: " ) ; scanf ( "%f" ,& a. x ) ;
printf ( " мнимая часть: " ) ; scanf ( "%f" ,& a. y ) ;
printf ( "Число B
" ) ;
printf ( " действ. часть: " ) ; scanf ( "%f" ,& b. x ) ;
printf ( " мнимая часть: " ) ; scanf ( "%f" ,& b. y ) ;

Читайте также  Рисунки для срисовки для любимого

sum. x = a. x + b. x ;
sum. y = a. y + b. y ;
mult. x = a. x * b. x — a. y * b. y ;
mult. y = a. y * b. x + a. x * b. y ;
printf ( "Сумма: %.2f+%.2fj
" , sum. x , sum. y ) ;
printf ( "Произв.: %.2f+%.2fj
" , mult. x , mult. y ) ;
>

# Вариант 1. Использование встроенного типа данных complex:

a = input ( )
b = input ( )
a = complex ( a )
b = complex ( b )
suma = a + b
mult = a * b
print ( suma )
print ( mult )

# Вариант 2. Определение собственного класса и перегрузка операторов:

class Cmplx:
def __init__ ( self , x , y ) :
self . x = x
self . y = y
def __add__ ( self , obj ) :
self . sumax = self . x + obj. x
self . sumay = self . y + obj. y
def __mul__ ( self , obj ) :
self . multx = self . x * obj. x — self . y * obj. y
self . multy = self . y * obj. x + self . x * obj. y

x = float ( input ( ) )
y = float ( input ( ) )
a = Cmplx ( x , y )
x = float ( input ( ) )
y = float ( input ( ) )
b = Cmplx ( x , y )
a + b
a * b
print ( ‘Сумма: %.2f+%.2fj’ % ( a. sumax , a. sumay ) )
print ( ‘Произв.: %.2f+%.2fj’ % ( a. multx , a. multy ) )

# Вариант 3. Использование словарей:

a = < ‘x’ : 0 , ‘y’ : 0 >
b = < ‘x’ : 0 , ‘y’ : 0 >
a [ ‘x’ ] = float ( input ( ) )
a [ ‘y’ ] = float ( input ( ) )
b [ ‘x’ ] = float ( input ( ) )
b [ ‘y’ ] = float ( input ( ) )
suma = < >
mult = < >
suma [ ‘x’ ] = a [ ‘x’ ] + b [ ‘x’ ]
suma [ ‘y’ ] = a [ ‘y’ ] + b [ ‘y’ ]
mult [ ‘x’ ] = a [ ‘x’ ] * b [ ‘x’ ] — a [ ‘y’ ] * b [ ‘y’ ]
mult [ ‘y’ ] = a [ ‘y’ ] * b [ ‘x’ ] + a [ ‘x’ ] * b [ ‘y’ ]
print ( ‘Сумма: %.2f+%.2fj’ % ( suma [ ‘x’ ] , suma [ ‘y’ ] ) )
print ( ‘Произв.: %.2f+%.2fj’ % ( mult [ ‘x’ ] , mult [ ‘y’ ] ) )

В Python есть встроенный тип данных комплексные числа, который поддерживает операции сложения и умножения.

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

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

program sum;
var a, b: Double;
begin
Write(‘Введите число: ‘);
Readln(a);
Write(‘Введите число: ‘);
Readln(b);
Write(a, ‘+’, b, ‘=’, a+b) ;
Readln;
end.

Ссылка на основную публикацию
Adblock
detector