Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Использование блок-схем алгоритмов





Использование блок-схем алгоритмов

При разработке программ

Условные обозначения (ГОСТ 19.003.80)

Наименование Обозначение Функция
Блок выполнения действия (процесс)   Выполнение операции или группы операций, изменяющих значение, форму представления или расположение данных
Логический блок (решение) Выбор направления выполнения алгоритма в зависимости от некоторых условий
Модификация (заголовок цикла) Выполнение действий, изменяющих команды или группы команд
Предопределенный процесс Обращение к вспомогательному алгоритму    
Блок ввода- Вывода Ввод или вывод данных
Пуск- останов Начало или конец алгоритма
Линия потока Указание на последовательность связей между блоками
Комментарий
--------------[

Пояснение элемента схемы
Соединитель Указатель связи между прерванными линиями потока в пределах одной страницы
Межстраничный соединитель Указание связи между частями схемы, расположенными на разных страницах

Структура «следование»

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

Она представляет собой последовательность команд, следующих одна за другой. На схеме структура изображается так:

 

 

 


При исполнении алгоритма эти команды выполняются в том порядке, в каком они записаны. На процедурных языках программирования (Бейсик, Паскаль, Си) данная структура реализуется в виде последовательности операторов, следующих один за другим:

 

<оператор1>

...

<операторN>.

При решении следующей задачи используется структура следования.

Задача.

Известны катеты прямоугольного треугольника. Определить его гипотенузу и площадь.

Решение.

Блок-схема

 
 

 

 


 

Алгоритмический язык

алг гипотенуза и площадь

начвещ a,b,c,s

¦ вывод "Введите катеты a, b:"

¦ ввод a,b

¦ c:= sqrt (a**2 + b**2)

¦ s:= 1 / 2 * a * b

¦ вывод "Гипотенуза=", c

¦ вывод "Площадь треугольника=", s

кон

Бейсик

Вычисление гипотенузы и площади треугольника

INPUT "Введите катеты a,b"; a, b

c = SQR (a^2 + b ^2)

s = 1 / 2 * a * b

PRINT "Гипотенуза =";c

PRINT "Площадь треугольника =";s

END

Паскаль

{Вычисление гипотенузы и площади треугольника}

program treugolnik;

var a,b,c,s:real;

begin

write ('Введите катеты a, b: ');

readln (a, b);

c:= sqrt (a*a + b*b);

s:= 1 / 2 * a * b;

writeln ('Гипотенуза=', c);

writeln ('Площадь треугольника=', s);

end.

Си

#include<stdio.h>

void main()

{

float a,b,c,s;

printf("\nВведите катеты a, b: ");

scanf("%е",&a);

scanf("%е",&b);

c = sqrt (a*a + b*b);

s = 1 / 2 * a * b;

printf("Гипотенуза= %е",с);

printf("Площадь треугольника= %е", s);

}

Структура «развилка»

Алгоритмы, при исполнении которых порядок следования команд определяется в зависимости от результатов проверки некоторых условий, называются ветвящимися. Для их описания используются структуры «развилка» и «выбор». Структура «развилка» имеет вид:

 

Она содержит логический элемент проверки условия Р и два функциональных блока S1 и S2. При исполнении алгоритма сначала вычисляется значение логического выражения (проверяется условие), если оно истинно, то выполняется блок S1, иначе (если ложно) блок S2. Такой вид развилки называется полной условной конструкцией.

На языках программирования данная структура реализуется так.

Алгоритмический язык Бейсик
если <условие> то <серия1> иначе <серия2> все a) линейная форма IF <выражение> THEN <оператор1> ELSE <оператор2> б) блочная форма IF <выражение> THEN <оператор1> ELSE <оператор2> END IF
Паскаль Си
if <выражение> then <оператор1> else <оператор2>; if (<выражение>) <оператор1>; else <оператор2>;

Здесь <выражение> – логическое выражение (условие), <оператор> – это либо один оператор, либо группа операторов. В Паскале группа операторов заключается в операторные скобки begin – end, в Си – в фигурные скобки {}.

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

Структура неполной развилки имеет вид:

 

Она реализуется следующим образом:

Алгоритмический язык Бейсик
если <условие> то <серия> все a) линейная форма IF <выражение> THEN <оператор> б) блочная форма IF <выражение> THEN <оператор> END IF
Паскаль Си
if <выражение> then <оператор>; if (<выражение>) <оператор>;

Задача.

Вычислить значение функции для заданного х.

Решение.


Блок-схема

 
 


Алгоритмический язык

алг выражение

начвещ x,y

¦ вывод "Введите х:"

¦ ввод x

¦ если x–3=0

¦ ¦ товывод "При х=3 значение функции не определено"

¦ ¦ иначе y:=(x**2+5*х+2)/(x–3)

¦ ¦ вывод "y=",y

¦ все

кон

Бейсик

'Выражение

INPUT "Введите х"; x

IF x – 3 = 0 THEN

PRINT " При х=3 значение функции не определено "

ELSE

y = (x^2+5*х+2)/(x–3)

PRINT "y="; y

END IF

END

Паскаль

program vyrazh;

var x, y: real;

begin

write ('Введите х:'); readln(x);

if x– 3 = 0

then

write ('При х=3 значение функции не определено')

else

begin

y:=(x*x+5*х+2)/(x–3);

write ('y=', y)

end

end.

Си

#include<stdio.h>

void main()

{

float x,y;

printf("\nВведите x: ");

scanf("%e", & x);

if(x–3==0)

printf("При х=3 значение функции не определено ");

else

{y=(x*x+5*х+2)/(x–3);

printf("y= %e", y); }

}

Структура «цикл»

Алгоритмы, при исполнении которых отдельные команды или серии команд выполняются неоднократно, называются циклическими. Для их описания используется структура «цикл». Структура «цикл» может быть трех видов: «цикл с предусловием» («пока»), «цикл с постусловием» («до»), «цикл с параметром» («для»).

Алгоритмический язык

алг сумма

начвещ s,x, цел k

¦ вывод "Введите число:"

¦ ввод х

¦ s:=0

¦ k:=0

¦ нцпока x<>0

¦ ¦ s:=s+x

¦ ¦ k:=k+1

¦ ¦ вывод "Введите число:"

¦ ¦ ввод х

¦ кц

¦ вывод "Сумма чисел=",s,"их количество=",k

кон

Бейсик

'Сумма

s = 0: k=0

INPUT "Введите число:"; x

DO WHILE x <> 0

s = s+ x

k=k+1

INPUT "Введите число:"; x

LOOP

PRINT "Сумма чисел="; s; "их количество=",k

END

Паскаль

program summa;

var s,x:real; k:integer;

begin

s:=0;k:=0;

write('Введите число:');

readln(x);

while x<>0 do

begin

s:=s+x;

k:=k+1;

write('Введите число:');

readln(x);

end;

writeln('Сумма чисел=',s,' их количество=', k);

end.

Си

#include<stdio.h>

void main()

{

float x,s; int k;

s = 0;

k=0;

printf("\nВведите число: ");

scanf("%e", & x);

while(x==0)

{

s = s+ x

k=k+1

printf("\nВведите число: ");

scanf("%e", & x);

}

printf("Сумма чисел= %e", s);

printf("их количество= %e",k);

}

Бейсик

'Вычисление суммы ряда

s = 0

i = 1

an = 1

DO

s = s + an

i = i + 1

an = 1 / i^2

LOOP UNTIL an <.001

PRINT "Сумма ряда="; s

END

Паскаль

program summa;

{Вычисление суммы ряда}

var i:integer;

an,s:real;

begin

s:=0;

i:=1;

an:=1;

repeat

s:=s+an;

i:=i+1;

an:=1/(i*i)

until an<0.001;

writeln('Сумма ряда=',s:6:3);

end.

Алгоритмический язык

алг Сумма

нач цел i,n;вещ s

¦ вывод "Введите n:"

¦ ввод n

¦ s:=0

¦ нцдля i от 1 до n шаг 1

¦ ¦ s:=s+sqrt(i)

¦ кц

¦ вывод "Сумма ряда=",s

кон

Бейсик

'Сумма ряда

INPUT "Введите N:"; N

s = 0

FOR i = 1 TO N

s = s + SQR(i)

NEXT i

PRINT "Сумма ряда="; s

END

Паскаль

var i,n:integer;

s:real;

begin

write('Введите n:');

readln(n);

s:=0;

for i:=1 to n

do s:=s+sqrt(i);

writeln('Сумма ряда=',s:6:3);

end.

Си

#include<math.h>

#include<stdio.h>

void main()

{

int n,i;

float s;

printf("\nВведите n: ");

scanf("%e",&n);

s=0;

for (i=1;i<=n; i=i+1)

s=s+sqrt(i);

printf("Элемент равен: ");

printf("%e",s);

}

Структура «выбор»

Структура выбора является развитием структуры «развилка». В отличие от структуры «развилка» здесь имеется возможность выбора более двух действий. Она имеет вид:

 
 

 

 


где P1, …, РN – логические элементы проверки условия; S1,... SN+1 – функциональные блоки.

Выполняется следующим образом: проверяется условие, т.е. вычисляется значение выражения, и в зависимости от значения выполняются либо функциональный блок S1, либо S2, и т.д. SN. Если ни одно из условий не выполняется, то выполняется функциональный блок SN+1.

На рассматриваемых языках данная структура реализуется так:

Алгоритмический язык Выбор при <условии1>: <серия1> при <условии2>:<серия2> … при <условииN>:<серияN> иначе < серияN+1> все
Бейсик SELECT CASE <выражение> CASE <список выражений1> <оператор1> … CASE <список выраженийN> <операторN> CASE ELSE <операторN+1> END SELECT
Паскаль сase <выражение> of <список констант1>: <оператор1>; ... <список константN>: <операторN>; else <операторN+1> end;
Си switch (<выражение>) case <константа1>: <оператор1>; break; ... case <константаN>: <операторN>; break; default: <операторN+1>; break

Для Паскаля, Си, Бейсика больше подходит такая схема:

 

Блок-схема

 

Алгоритмический язык

алг оценка

начцел n

¦ вывод "введите n"

¦ ввод n

¦ выбор

¦ ¦ при n=2: вывод "Неудовлетворительно"

¦ ¦ при n=3: вывод "Удовлетворительно"

¦ ¦ при n=4: вывод "Хорошо"

¦ ¦ при n=5: вывод "Отлично"

¦ ¦ иначевывод "Это не оценка"

¦ все

кон

Блок-схема


Бейсик

'Оценка

INPUT "Введите n:"; n

SELECT CASE n

CASE 2

PRINT"Неудовлетворительно"

CASE 3

PRINT "Удовлетворительно"

CASE 4

PRINT "Хорошо"

CASE 5

PRINT "Отлично"

CASE ELSE

PRINT "Это не оценка"

END SELECT

END

Паскаль

 

program ocenka;

var n:integer;

begin

write('Введите n: ');readln(n);

case n of

2:writeln('Неудовлетворительно');

3:writeln('Удовлетворительно');

4:writeln('Хорошо');

5:writeln('Отлично');

else writeln('Это не оценка')

end;

end.

Си

#include<stdio.h>

void main()

{

int n;

printf("\nВведите n: ");

scanf("%d",&n);

switch (n)

{

case 2: printf("Неудовлетворительно");break;

case 3: printf("Удовлетворительно");break;

case 4: printf("Хорошо");break;

case 5: printf("Отлично");break;

default: printf("Это не оценка");break;

}

}


Алгоритмический язык

алг квадратное уравнение

начвещ a,b,c,d,x,x1,x2

¦ вывод "Введите a,b,c"

¦ ввод a,b,c

¦ d:=b**2-4*a*c

¦ если d<0

¦ ¦ товывод "Вещественных корней нет"

¦ ¦ иначе

¦ ¦ если d=0

¦ ¦ ¦ то x:=-b/(2*a);

¦ ¦ ¦ вывод "х=",x

¦ ¦ ¦ иначе x1:=(-b+sqrt(d))/2/a;

¦ ¦ ¦ x2:=(-b-sqrt(d))/2/a;

¦ ¦ ¦ вывод "x1=",x1;

¦ ¦ ¦ вывод "x2=",x2

¦ ¦ все

¦ все

кон

Бейсик

'Квадратное уравнение

INPUT "Введите коэффциенты a, b, c"; a, b, c

d = b ^ 2 - 4 * a * c

IF d < 0 THEN

PRINT "Вещественных корней нет"

ELSEIF d = 0 THEN

x = -b / (2 * a)

PRINT "х= "; x

ELSE

x1 = (-b + SQR(d)) / 2 / a

x2 = (-b - SQR(d)) / 2 / a

PRINT "x1="; x1

PRINT "x2="; x2

END IF

END

Паскаль

program kv_uravn;

var x,x1,x2,a,b,c,d:real;

begin

write('Введите коэффициенты a,b,c:');

readln(a,b,c);

d:=b*b-4*a*c;

if d<0

then writeln('Вещественных корней нет')

else if d=0

then

begin

x:=-b/2/a;

writeln('x=',x:6:2)

end

else

begin

x1:=(-b+sqrt(d))/2/a;

x2:=(-b-sqrt(d))/2/a;

writeln('x1=',x1:6:2);

writeln('x2=',x2:6:2)

end;

end.

Си

#include<stdio.h>

void main()

{

float x,x1,x2,a,b,c,d;

printf("\nВведите коэффициенты a,b,c: ");

scanf("%e", & a);

scanf("%e", & b);

scanf("%e", & c);

d=b*b-4*a*c;

if (d<0)

printf("Вещественных корней нет ");

else if (d==0)

{

x=-b/2/a;

printf("x= %e", x);

}

else

{

x1=(-b+sqrt(d))/2/a;

x2=(-b-sqrt(d))/2/a;

printf("x1= %e", x1);

printf("x2= %e", x2);

}

}

Следующая задача решается с помощью вложенной структуры «развилка в цикле».

Задача (алгоритм Евклида).

Вычислить наибольший общий делитель двух чисел

Решение.

Блок-схема

 
 

 

 


Алгоритмический язык

алг нод

начцел m, k, nod

¦ вывод "Введите m, k"

¦ ввод m, k

¦ нцпока m <> k

¦ ¦ если m > k

¦ ¦ ¦ то m:= m - k

¦ ¦ ¦ иначе k:= k - m

¦ ¦ все

¦ кц

¦ nod:= m

¦ вывод нс, "НОД=", nod

кон

Бейсик

'Определение НОД

DEFINT m,k,nod

INPUT " Введите m и k"; m, k

DO WHILE m <> k

IF m > k THEN m = m – k ELSE k = k – m

LOOP

nod = m

PRINT " НОД ="; nod

END

Паскаль

{ Определение НОД}

program pr_nod;

var m, k, nod: integer;

begin

write(‘ Введите m и k’); readln(m,k);

while m <> k

do if m > k

then m:= m - k

else k:= k - m;

nod:= m;

writeln (‘НОД = ‘, nod);

end.

Си

#include<stdio.h>

void main()

{

int m,k,nod;

printf("\nВведите m и k: ");

scanf("%d",&m);

scanf("%d",&k);

while(m!=k)

if(m>k) m=m-k; else k=k-m;

nod=m;

printf("НОД = %d",nod);

}

При решении следующей задачи используются последовательно друг за другом структуры цикла с постусловием и развилки, причем, в цикле с постусловием содержится вложенная структура развилки в неполной форме.

Задача.

Вводится последовательность ненулевых чисел (не менее 2), 0 – конец последовательности. Определить, сколько раз последовательность меняет знак.

Решение.

Блок-схема

 
 


Бейсик

'Последовательность

INPUT "Введите число:"; xst

INPUT "Введите число:"; xn

k = 0

DO

IF xst * xn < 0 THEN k = k + 1

xst = xn

INPUT "Введите число:"; xn

LOOP UNTIL xn = 0

IF k > 0 THEN

PRINT "Последовательность меняет знак "; k; " раз"

ELSE

PRINT "Последовательность не меняет знака"

END IF

END

Паскаль

program znak;

var xst,xn:real;

k:integer;

begin

write('Введите число:');

readln(xst);

write('Введите число:');

readln(xn);

k:=0;

repeat

if xst*xn<0

then k:=k+1;

xst:=xn;

write('Введите число:');

readln(xn)

until xn=0;

if k>0

then writeln('Последовательность меняет знак ',k,' раз')

else writeln('Последовательность не меняет знака')

end.

 

В следующей задаче используется вложенная структура цикл с параметром в развилке.

Задача.

Найти n-й член ряда Фибоначчи. (Ряд Фибоначчи задается начальными значениями f1=1, f2=1 и рекуррентным соотношением fn=fn-1+fn-2: 1, 1, 2, 3, 5, 8…).

Решение.

Блок-схема

 
 


Алгоритмический язык

алг фибоначчи

нач цел n,f1,f2,f,i

¦ вывод "Введите n:"

¦ ввод n

¦ если n<=2

¦ ¦ то f:=1

¦ ¦ иначе f1:=1;f2:=1

¦ ¦ нц для i от 3 до n

¦ ¦ ¦ f:=f1+f2;

¦ ¦ ¦ f1:=f2;

¦ ¦ ¦ f2:=f;

¦ ¦ кц

¦ все

¦ вывод нс, n,"-е число Фибоначчи=",f

кон

Бейсик

'Числа Фибоначчи

INPUT " Введите n:"; n

IF n <= 2 THEN

f = 1

ELSE

f1 = 1

f2 = 1

FOR i = 3 TO n

f = f1 + f2

f1 = f2

f2 = f

NEXT

END IF

PRINT n; "-е число Фибоначчи="; f

END

Паскаль

{Числа Фибоначчи}

program fib;

var i,n,f,f1,f2:integer;

begin

write('Введите n:');readln(n);

if n<=2

then f:=1

else

begin

f1:=1;

f2:=1;

for i:=3 to n do

begin

f:=f1+f2;

f1:=f2;

f2:=f;

end;

end;

writeln(n,'-е число Фибоначчи=',f)

end.

Си

/* Числа Фибоначчи*/

#include<stdio.h>

void main()

{

int f1,f2,n,f,i;

printf("\nВведите n: ");

scanf("%d",&n);

if(n<=2)

f=1;else

{f1=1; f2=1;

for(i=3;i<=n;i=i+1)

{f=f1+f2;

f1=f2;

f2=f; }

}

printf("%d–е число Фибоначчи=%d",n,f);

}

Использование блок-схем алгоритмов

При разработке программ

Условные обозначения (ГОСТ 19.003.80)

Наименование Обозначение Функция
Блок выполнения действия (процесс)   Выполнение операции или группы операций, изменяющих значение, форму представления или расположение данных
Логический блок (решение) Выбор направления выполнения алгоритма в зависимости от некоторых условий
Модификация (заголовок цикла) Выполнение действий, изменяющих команды или группы команд
Предопределенный процесс Обращение к вспомогательному алгоритму    
Блок ввода- Вывода Ввод или вывод данных
Пуск- останов Начало или конец алгоритма
Линия потока Указание на последовательность связей между блоками
Комментарий
--------------[

Пояснение элемента схемы
Соединитель Указатель связи между прерванными линиями потока в пределах одной страницы
Межстраничный соединитель Указание связи между частями схемы, расположенными на разных страницах

Структура «следование»

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

Она представляет собой последовательность команд, следующих одна за другой. На схеме структура изображается так:

 

 

 


При исполнении алгоритма эти команды выполняются в том порядке, в каком они записаны. На процедурных языках программирования (Бейсик, Паскаль, Си) данная структура реализуется в виде последовательности операторов, следующих один за другим:

 

<оператор1>

...

<операторN>.

При решении следующей задачи используется структура следования.

Задача.

Известны катеты прямоугольного треугольника. Определить его гипотенузу и площадь.

Решение.

Блок-схема

 
 

 

 


 

Алгоритмический язык

алг гипотенуза и площадь

начвещ a,b,c,s

¦ вывод "Введите катеты a, b:"

¦ ввод a,b

¦ c:= sqrt (a**2 + b**2)

¦ s:= 1 / 2 * a * b

¦ вывод "Гипотенуза=", c

¦ вывод "Площадь треугольника=", s

кон

Бейсик

Вычисление гипотенузы и площади треугольника

INPUT "Введите катеты a,b"; a, b

c = SQR (a^2 + b ^2)

s = 1 / 2 * a * b

PRINT "Гипотенуза =";c

PRINT "Площадь треугольника =";s

END

Паскаль

{Вычисление гипотенузы и площади треугольника}

program treugolnik;

var a,b,c,s:real;

begin

write ('Введите катеты a, b: ');

readln (a, b);

c:= sqrt (a*a + b*b);

s:= 1 / 2 * a * b;

writeln ('Гипотенуза=', c);

writeln ('Площадь треугольника=', s);

end.

Си

#include<stdio.h>

void main()

{

float a,b,c,s;

printf("\nВведите катеты a, b: ");

scanf("%е",&a);

scanf("%е",&b);

c = sqrt (a*a + b*b);

s = 1 / 2 * a * b;

printf("Гипотенуза= %е",с);

printf("Площадь треугольника= %е", s);

}

Структура «развилка»

Алгоритмы, при исполнении которых порядок следования команд определяется в зависимости от результатов проверки некоторых условий, называются ветвящимися. Для их описания используются структуры «развилка» и «выбор». Структура «развилка» имеет вид:

 

Она содержит логический элемент проверки условия Р и два функциональных блока S1 и S2. При исполнении алгоритма сначала вычисляется значение логического выражения (проверяется условие), если оно истинно, то выполняется блок S1, иначе (если ложно) блок S2. Такой вид развилки называется полной условной конструкцией.

На языках программирования данная структура реализуется так.

Алгоритмический язык Бейсик
если <условие> то <серия1> иначе <серия2> все a) линейная форма IF <выражение> THEN <оператор1> ELSE <оператор2> б) блочная форма IF <выражение> THEN <оператор1> ELSE <оператор2> END IF
Паскаль Си
if <выражение> then <оператор1> else <оператор2>; if (<выражение>) <оператор1>; else <оператор2>;

Здесь <выражение> – логическое выражение (условие), <оператор> – это либо один оператор, либо группа операторов. В Паскале группа операторов заключается в операторные скобки begin – end, в Си – в фигурные скобки {}.

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

Структура неполной развилки имеет вид:

 

Она реализуется следующим образом:

Алгоритмический язык Бейсик
если <условие> то <серия> все a) линейная форма IF <выражение> THEN <оператор> б) блочная форма IF <выражение> THEN <оператор> END IF
Паскаль Си
if <выражение> then <оператор>; if (<выражение>) <оператор>;

Задача.

Вычислить значение функции для заданного х.

Решение.


Блок-схема

 
 


Алгоритмический язык

алг выражение

начвещ x,y

¦ вывод "Введите х:"

¦ ввод x

¦ если x–3=0

¦ ¦ товывод "При х=3 значение функции не определено"

¦ ¦ иначе y:=(x**2+5*х+2)/(x–3)

¦ ¦ вывод "y=",y

¦ все

кон

Бейсик

'Выражение

INPUT "Введите х"; x

IF x – 3 = 0 THEN

PRINT " При х=3 значение функции не определено "

ELSE

y = (x^2+5*х+2)/(x–3)

PRINT "y="; y

END IF

END

Паскаль

program vyrazh;

var x, y: real;

begin

write ('Введите х:'); readln(x);

if x– 3 = 0

then

write ('При х=3 значение функции не определено')

else

begin

y:=(x*x+5*х+2)/(x–3);

write ('y=', y)

end

end.

Си

#include<stdio.h>

void main()

{

float x,y;

printf("\nВведите x: ");

scanf("%e", & x);

if(x–3==0)

printf("При х=3 значение функции не определено ");

else

{y=(x*x+5*х+2)/(x–3);

printf("y= %e", y); }

}

Структура «цикл»

Алгоритмы, при исполнении которых отдельные команды или серии команд выполняются неоднократно, называются циклическими. Для их описания используется структура «цикл». Структура «цикл» может быть трех видов: «цикл с предусловием» («пока»), «цикл с постусловием» («до»), «цикл с параметром» («для»).







Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычис­лить, когда этот...

Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор...

Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все...

Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.