Basic Pascal Tutorial/Chapter 3/Solution/bg
│
български (bg) │
English (en) │
français (fr) │
日本語 (ja) │
中文(中国大陆) (zh_CN) │
Решения на задачите
(author: Tao Yue, state: unchanged)
Решение на задачата за числата на Фибоначи
(* Автор: Tao Yue
Дата: 19 July 1997
Описание:
Намиране на първите 10 числа на Фибоначи
Версия:
1.0 - original version
*)
program Fibonacci;
var
Fibonacci1, Fibonacci2 : integer;
temp : integer;
count : integer;
begin (* Main *)
writeln ('Първите 10 числа на Фибоначи са:');
count := 0;
Fibonacci1 := 0;
Fibonacci2 := 1;
repeat
write (Fibonacci2:7);
temp := Fibonacci2;
Fibonacci2 := Fibonacci1 + Fibonacci2;
Fibonacci1 := Temp;
count := count + 1
until count = 10;
writeln;
(* Разбира се, можете да използвате цикли FOR или WHILE
за да решите задачата. *)
end. (* Main *)
Решение на задачата за степените на 2
(* Автор: Tao Yue
Дата: 13 July 2000
Описание:
Показване на всички степени на 2 по-малки от 2000, 5 на ред
Версия:
1.0 - original version
*)
program PowersofTwo;
const
numperline = 5;
maxnum = 20000;
base = 2;
var
number : longint;
linecount : integer;
begin (* Main *)
writeln ('Степени на ', base, ', 1 <= x <= ', maxnum, ':');
(* Подготовка за цикъл *)
number := 1;
linecount := 0;
(* Цикъл *)
while number <= maxnum do
begin
linecount := linecount + 1;
(* Изпиши запетайка освен ако не е
първото число на реда *)
if linecount > 1 then
write (', ');
(* Изпиши числото *)
write (number);
(* Изпиши запетайка и премини на нов ред ако е
последното число ОСВЕН ако е последното
число от редицата *)
if (linecount = numperline) and not (number * 2 > maxnum) then
begin
writeln (',');
linecount := 0
end;
(* Увеличи числото *)
number := number * base;
end; (* while *)
writeln;
(* Тази програма може да се напише и с използване на
цикъл REPEAT..UNTIL. *)
end. (* Main *)
Забележете използването на три константи: основата base, броя на числата за изписване на един ред numperline и максималното число maxnum. Това позволява програмата да бъде лесно адаптирана в бъдеще.
Използването на константи вместо литерали е добър навик. Когато пишете наистина големи програми, вие можете да използвате определени числа стотици пъти. Ако ги запишете директно в кода и се наложи да ги промените, ще трябва да ги търсите едно по едно. Също така, може да се окаже, че същото число се използва и за други цели и тогава не можете просто да използвате глобално търсене и замяна (Search-and-Replace). Използването на константа опростява разширяването на програмата.
Забележете също че е използван типа longint за променливата number. Това е така защото за да се излезе от цикъла трябва израза number <= 20000 да бъде FALSE, което означава че number ще трябва да бъде 32768. Това надвишава диапазона на типа integer, който е от -32768 до 32767. Опитайте с тип integer вместо longint и вижте какво ще се получи.