Professional Documents
Culture Documents
Задача 1: Да се състави програма COUNTPRIME.CPP, която въвежда от клавиатурата Решение
Задача 1: Да се състави програма COUNTPRIME.CPP, която въвежда от клавиатурата Решение
1. Области на действие
Освен име и тип всяка променлива има и област на действие. Областта на действие на всяка
променлива започва от мястото на нейната декларация и завършва с края на функцията, в която е
направена тази декларация. Променливите могат да бъдат използвани само в тяхната област на
действие. Това означава, че името на всяка променлива и нейната стойност са познати и достъпни само
в съответната им област на действие.
Ще илюстрираме това с познатата ни задача:
Задача 1: Да се състави програма COUNTPRIME.CPP , която въвежда от клавиатурата
числа до въвеждане на 0 и отпечатва броя на въведените прости числа.
Решение:
Разгледахме тази задача в предходната тема и можем да напишем направо кода на програмата,
без допълнителни пояснения:
//countprime.cpp
#include <iostream>
#include <cmath>
using namespace std;
int prime(int x)
{
int d, k;
if(x==0||x==1) return 0;
k=sqrt(x);
for(d=2; d<=k; d++)
if(x%d==0)return 0;
return 1;
}
void main()
{
int a,b=0;
do
{
cin>>а;
if(prime(a))b++;
}
while(a);
cout<<b<<endl;
}
а) локални променливи
Променливи, определени само в рамките на конкретната функция.
Това е тяхната област на действие
Забележка1: За да различава компилаторът кога използваме локална променлива и кога
формален параметър, те задължително трябва да имат различни имена.
б) глобални променливи
1
Променливи, дефинирани за всички функции в програмата.Глобалните променливи могат
директно да се използват във всички функции и да бъдат променяни.
Глобалните променливи се описват в началото на програмата преди всички функции
(включително и main). Те се описват и използват така, както и локалните променливи, дефинирани в
тялото на функцията. Единствената разлика между локална и глобална променлива е областта на
дествието им. Глобалната променлива е определена в цялата програма, а локалната – само в тялото на
функцията, в която е дефинирана. Глобалната променлива може да бъде описана и между функциите.
Тогава тя ще еопределена само за тези функции, които са записани след описанието и. Глобалните
променливи могат да се използват от различни функции и по този начин да се предават стойности
между тях.
Задача 2: Променете текста на програмата от Задача1 така, че всички поменливи,
декларирани и използвани във функциите, да се представят като глобални.
Решение:
//countprime.cpp
#include <iostream>
#include <cmath>
using namespace std;
int a,b,k,d;
int prime()
{
if(a==0||a==1) return 0;
k=sqrt(a);
for(d=2; d<=k; d++)
if(a%d==0)return 0;
return 1;
}
void main()
{
do
{
cin>>а;
if(prime())b++;
}
while(a);
cout<<b<<endl;
}