PDA

View Full Version : 2 числа с блок схема и програма на Pascal



vis27
06-10-2011, 18:33
Здравейте!
Нужна ми е малко помощ,относно блок схема и програма на паскал за събиране на 2 числа.Ще съм ви благодарен,ако дадете по едно рамо :-D

Благодаря предварително!

Chacho
06-10-2011, 21:39
Ема четете си малко материала поне.

Блок схема:

Начало->Въвеждане на а и b->Извеждане на а+b->Край


Програма



program asdf;

var

a, b: integer;

begin

write('a='); readln(a);
write('b='); readln(b);

writeln('a+b=', a+b);

readln;

end.


Ето ти малко обяснение за самата програма.

Всяка програма започва с:


program ime_na_programata;

След това пишеш var, което означава, че ще пишеш променливите. Ще ти кажа малко грешно определение за тях, но в случая върши работа. Променливите са числата, с които ще работиш. (променливите не са само числа)


Под var-a единствено казваш колко числа ще ползваш, какви имена ще им дадеш и какви числа ще са (цели, дробни, т.н.) В случая съм заявил, че ще ползваме две цели числа - а и b.

Това става така:


ime_na_promenliva_1, ime_na_promenliva_2: tip_na_promenlivite; (Има типове real, integer, longint и т.н. има и нечислови типове, но в конкретната задача не те вълнуват)

В случаят е:



a, b: intiger;


Може да ги декларирам и на повече редове:



a:real;
b:real;



След това пишем самата програма. Тя започва с begin и завършва с end. (След end има точка)

Как точно съм я написал?

Ползвам няколко команди (всъщност се наричат оператори): write, writeln и readln. Какво прави всеки от тях?

write и writeln са оператори, които изписват текст при пускане на програмата. Можем да запишем така:


write('Някакъв текст');
или

write('a=');
И в двата случая ще се изпише това, което съм написал между апострофите в скобите.

От друга страна

write('Ne6to', ' Nishto');
ще изпише Ne6to Nishto на екрана.

Ако не сложа апострофите, няма да мога да пиша каквото си искам. Защо? Защото ще се иска от мен, да напиша името на променлива. Например:


write(a)
Сега вече ще се изпише стойността на а. Ако а е 5, ще изпише 5.

Разликата между write и writeln е много проста. При writeln, след изписването, командата пренася на нов ред. Така следващият write няма да се е залепил на същият ред до написаното от последният write или writeln.


Write и writeln вече са ясни. Какво е readln? (има и read и разликата е като при write и writeln - пренася на нов ред след изпълняване на операторът)

readln e операторът, който пита потребителят да въведе стойност на променливата. Общо взето обратното на изписването. Вместо компютърът да извежда данни на екрана за потребителя, потребителя въвежда за него. Ние ще използваме оператора, за да му кажем колко са двете числа, които искаме да съберем.

readln(a); пита потребителят, колко е а. Writeln('a=') преди него пък го ползваме да подскажем на потребителя какво трябва да въведе.

И така, след като въведем двете променливи а и b, ползваме един writeln(a+b); да изведе резултата. Както виждаш, освен променливи и 'текстове' (наричат се низове), можем да извеждаме и цели изрази с writeln на екрана.

Накрая има и един readln; който не чете нищо. Него го слагаме, защото без него програмата ще пресметне всичко, ще изпише резултатите и ще се скрие. Така ни чака да въведем някакво нищо. С други думи, чака да цъкнем enter, за да се затвори. Удобно, а?

Завършваме програмата с end.



Това е доста проста програма, но дано малко си схванал логиката на нещата и ти помогне за следващия материал. Като хванеш нишката на нещата и се научиш да мислиш "програмистки" (поне на някакво любителско ниво, хората обичат да му казват алгоритмично мислене), ще ти е по-лесно да усвоиш по-трудните идеи в програмирането.

vis27
06-12-2011, 15:10
Благодаря :) Програмата я разбрах след бая четене,ама не трябва ли във блок схемата да има някакво разклонение,или бъркам ?

Chacho
06-12-2011, 15:17
Нямаш условен оператор, за да правиш разклонение. Разклонение имаш тогава, когато имаш някакво условие и при резултат вярно се изпълнява един код, а при резултат грешно - друг.