78188

Разработка программ с использованием процедур и функций

Лабораторная работа

Информатика, кибернетика и программирование

Dos включает средства позволяющие реализовывать различные функции DOS. Функции в Паскале Функция это независимая именованная часть программы которую можно вызвать по имени для выполнения определенных действий. Структура функции повторяет структуру программы. Особенности использования функции: функция передает в точку вызова скалярное значение; имя функции может входить в выражение как операнд.

Русский

2015-02-07

101 KB

10 чел.

Тема: Разработка программ с использованием процедур и функций

Цель работы: сформировать навыки и умения создания алгоритмов и программ с использованием процедур и функций пользователя.

Время выполнения: 2 часа

Лабораторная работа №7

Порядок выполнения работы:

  1.  Изучить теоретические  сведения.
  2.  Выполнить программы DemoFunc, DemoProc, Pr1 и Sum_Sub_Square.
  3.  Получить индивидуальное задание  у преподавателя и разработать программу в соответствии с поставленной задачей.
  4.  Отлаженную, работающую программу сдать преподавателю. Работу программы показать с помощью самостоятельно разработанных тестов.

Теоретические сведения

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

Структурное программирование — "программирование без go to", т. е. не используются операторы перехода без особой необходимости. В связи с этим отдельные фрагменты программы представляют собой некоторые логические (управляющие) структуры, которые определяют порядок выполнения содержащихся в них правил обработки данных. Любая программа получается построенной из стандартных логических структур, число типов которых невелико.

Основные логические структуры:

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

Ветвление — управляющая структура, которая в зависимости от выполнения заданного условия определяет выбор для исполнения одного из двух или более заданных в этой структуре групп операторов.

Повторение — цикл, в котором группа операторов может выполняться повторно, если соблюдается заданное условие.

Технология нисходящего программирования базируется на методе программирования "сверху вниз". Часто этот метод называют методом пошаговой детализации. Основой такого метода является идея постепенной декомпозиции исходной задачи на ряд подзадач. Сначала формулируется самая грубая модель решения, отдельные детали которой на первом этапе могут быть довольно расплывчатыми. По мере разработки программы, разбивая наиболее неясные части алгоритма и добиваясь все более точных и детализированных формулировок получают более подробное решение. Решение отдельного фрагмента сложной задачи может представлять собой самостоятельный программный блок, называемый подпрограммой. Такой процесс детализации продолжается до тех пор, пока не станут ясны все детали решения задачи. В этом случае программу решения сложной задачи можно представить как иерархическую совокупность относительно самостоятельных фрагментов — подпрограмм.

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

За наличие подпрограмм как средства структурирования программ язык программирования Турбо Паскаль называется процедурно-ориентированным.

Подпрограммы в Турбо Паскале реализованы посредством процедур и функций.

Стандартные библиотечные модули

В систему Турбо Паскаль версии 7.0 и старше включены восемь модулей: System, Crt, Dos, Graph, Graph3, Overlay, Printer, ТурбоЗ и специализированная библиотека Турбо Vision. Модуль System подключается по умолчанию, все остальные должен подключать программист с помощью зарезервированного слова uses.

Например:

Uses Crt, Dos, Printer;

Назначение каждого модуля:

System — содержащиеся в нем подпрограммы обеспечивают работу всех остальных модулей системы.

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

Dos — включает средства, позволяющие реализовывать различные функции DOS.

Graph3 — поддерживает использование стандартных графических подпрограмм версии Турбо Паскаль 3.0.

Overlay — содержит средства организации оверлейных программ.

Printer — обеспечивает быстрый доступ к печатающему устройству.

ТurbоЗ — обеспечивает максимально возможную совместимость с версией Турбо Паскаль 3.0.    

Graph — содержит пакет графических средств, обеспечивающих эффективную работу с адаптерами CGA, EGA, VGA, IBM 3270 и т.д.

Турбо Vision— библиотека объектно-ориентированных подпрограмм для разработки пользовательских интерфейсов.

Функции в Паскале

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

Особенности использования функции: 

  •  функция передает в точку вызова скалярное значение;
  •  имя функции может входить в выражение как операнд.

Например, функция Chr(65) возвратит в точку вызова символ А (код ASCII — 65), Sqr(X) — возведет в квадрат значения целого или вещественного Х и возвратит в точку вызова вычисленное значение квадрата числа X.

Все процедуры и функции языка Турбо Паскаль делятся на две группы: встроенные (стандартные) и определенные пользователем. Первые входят в состав языка и вызываются для выполнения по строго фиксированному имени. Вторые разрабатываются и именуются самим пользователем. Все стандартные средства расположены в специализированных библиотечных модулях, которые имеют системные  имена.

Встроенные функции и процедуры

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

Подробное описание функций и процедур приведено в файле «Стандартные функции и процедуры.doc».

Функция, определенная пользователем, состоит из заголовка и тела функции.

Заголовок содержит зарезервированное слово function, идентификатор (имя) функции, заключенный в круглые скобки, необязательный список формальных параметров и тип возвращаемого функцией значения. Тело функции представляет собой локальный блок, по структуре аналогичный программе. В целом структура функции, определенной пользователем имеет вид:

function <имя> (Формальные параметры) : <тип результата>;

const ...                              

type ...

var

begin

<операторы>

end;

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

Обращение к функции осуществляется по имени с необязательным указанием списка аргументов. Каждый аргумент должен соответствовать формальным параметрам, указанным в заголовке, и иметь тот же тип.

Пример программы с использованием функции, определенной пользователем

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

,

.

program DemoFunc;

Var

М     : integer;

А,Z,R : real ;

{Функция вычисления  степени. N - степень, X – число, возводимое в данную степень. N, X — формальные параметры; результат, возвращаемый функцией в точку вызова, имеет вещественный тип}  

function Step(N : integer; X : real): real;

Var

I : integer;

Y : real;

begin

Y:=1;

for I:=1 to N do{Цикл вычисления N—й степени числа X)

Y:=Y*X;

Step:=Y ;     {Присваивание функции результата вычисления степени}

end; {Конец функции}

Begin              {Начало основной программы}

Write('Введите значение числа А и показатель степени М');

Readln(A,M) ;

Z:=Step(5,А) ; {Вызов функции с передачей ей факт. параметров N=5, X=А}

Z:=Z+ Step(3,l/A); {Вызов функции с передачей ей факт. параметров N=3, X=1/А}

if M=0 then R:=l {если число возводится в нулевую степень, то результат = 1}

else 

if M>0 then R:=Step(M,A){Вызов функции Step с передачей ей факт. параметров М, А}

else R:=Step(-M,A); {Вызов функции с передачей ей факт. параметров}

Z:=Z/(2*R) ;

Writeln(' Для А= ',А,'М= ',М,' Значение выражения= ',Z);

end.

В начале программы описываются переменная целого типа М и переменные вещественного типа А, Z, R, после этого описывается функция вычисления степени числа Step с формальными параметрами N и X, результат, возвращаемый функцией в точку вызова, - вещественного типа.

В описании функции вводятся две локальных (местных) переменных I и Y. Переменная I служит для подсчета числа повторений цикла, а в Y накапливается значение степени как произведения N одинаковых сомножителей. В заключение функции   присваивается значение вычисленного произведения.

В начале выполнения основной программы на экран выводится запрос "Введите значение числа А и показатель степени М", затем считывается с клавиатуры значение вещественного числа А и целого числа М.

После ввода значений выполняется оператор Z:=Step(5,A);

Осуществляется вызов функции Step с передачей ей фактических параметров 5, А. Их значения присваиваются формальным параметрам функции N и X. По окончании вычисления степени числа значение функции Step, вычисленное для фактических параметров 5 и А, присваивается переменной Z. Аналогично в операторе Z := Z + Step(3,l/A); сначала осуществляется вызов функции Step с передачей ей фактических параметров 3, 1/A. После чего значение переменной Z увеличивается на величину возвращенного в основную программу результата вычисления функции Step.

Операторы:

if M=0 then R:=1

else if M>0 then R:=Step(M,A)

else R:=Step(- M,A);

проверяют условия М=0, М>0 и в зависимости от их соблюдения либо присваивает переменной R значение 1 (при М=0), либо выполняет вызов функции Step для фактических значений М, А или -М, А, а после вычисления значения функции Step присваивает его переменной R.

Оператор Z:=Z/(2*R); выполняет вычисление значения выражения, а затем присваивает вычисленное значение переменной Z.

В заключение программы стандартная процедура Writeln выводит на экран сообщение о результате вычислений степени М числа А.

Процедуры в Паскале

Описание процедуры включает заголовок (имя) и тело процедуры. Заголовок состоит из зарезервированного слова procedure, идентификатора (имени) процедуры и необязательного, заключенного в круглые скобки, списка формальных параметров с указанием типа каждого параметра. Имя процедуры — идентификатор, уникальный в пределах программы. Тело процедуры представляет собой локальный блок, по структуре аналогичный программе.

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

procedure <имя> (Формальные параметры);

const ... ;

type . . . ;

var   . . . ;

begin

<операторы>

end ;

Пример программы с использованием процедуры, определенной пользователем

В качестве примера опишем процедуру, которая прерывает выполнение программы и выдает соответствующее сообщение об ошибке.

procedure Abort(Msg: string);

begin

Writeln('Ошибка: ', Msg);

Halt(1);

end ;

В данной процедуре пользователя использована переменная Msg типа string, в которой хранится текст сообщения о характере ошибки, вызвавшей прерывание программы. Для прерывания выполнения программы используется стандартная процедура Halt из стандартного библиотечного модуля System.

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

В качестве примера приведем фрагмент программы, в котором используется описанная выше процедура Abort.

program DemoProc;   {Подсчет суммы десяти введенных целых положительных чисел: если будет введено отрицательное число, прервать выполнение}

const Limit= 10;  {Ограничение на количество вводимых чисел)

Var Count, Item, Sum : integer;

procedure Abort(Msg: string); {описание и реализация процедуры Abort}

begin

Writeln('Ошибка: ', Msg);

Halt(1);

end ;

Begin       {основная программа}

Count:= 0;

Sum: = 0 ;

while (Count < Limit) do   {Условие выполнение цикла}

begin

Count:= Count+1;

Write('Введите ', Count, '-e целое число: ');

Readln(Item);

if Item < 0 then {Если введено отрицательное число}

Abort('Введено отрицательное число! '); {Вызов процедуры}

Sum:= Sum+Item;

end;

Writeln('Сумма введенных чисел равна ', Sum);

end.

В разделе описания программы описываются константа Limit, ограничивающая количество вводимых чисел; в разделе описания переменных описываются переменные Count, Item, Sum типа integer.

В начале программы обнуляются значения количества введенных чисел Count и их сумма Sum. Потом выполняется цикл, пока очередное вводимое число меньше предельного, заданного значением константы Limit. Сначала устанавливается номер очередного числа, затем на экран выводится приглашение "Введите 1-е (2-е и т.п.) число", считывается значение числа с клавиатуры в переменную Item. Затем проверяется условие Item<0.

Если условие выполняется, то вызывается процедура Abort, которой передается фактический параметр-значение типа string: "введено отрицательное число". Это значение присваивается формальному параметру Msg процедуры Abort. Процедура Abort выводит на экран сообщение об ошибке и печатает текст сообщения - значение параметра Msg: "Ошибка: введено отрицательное число", после чего вызывает стандартную процедуру Halt(1), которая прерывает выполнение программы.

Если условие Item<0 не выполняется, то значение суммы Sum увеличивается на значение введенного числа Item, и управление передается в заголовок цикла для проверки условия Count < Limit. Если условие соблюдается, то тело цикла выполняется еще раз, иначе цикл завершается, а управление в программе передается на оператор, следующий за циклом, т. е. за резервированным словом end, обозначающим окончание составного оператора в теле цикла. После этого на экран выводится сообщение: "Сумма введенных чисел равна" и печатается значение переменной Sum. На этом выполнение программы завершается.

Механизм передачи параметров

Как было показано в приведенных выше примерах программ с использованием процедур и функций, в заголовке процедуры или функции может быть задан список параметров, которые называются формальными. Название "формальные" эти параметры получили в связи с тем, что в этом списке заданы только имена для обозначения исходных данных и результатов работы процедуры, а при вызове подпрограммы на их место будут подставлены конкретные значения (выражений) и имена. Этот список указывается после имени подпрограммы и заключается в круглые скобки.

В списке формальных параметров должны быть перечислены имена формальных параметров и их типы. Имя параметра отделяется от типа двоеточием, а параметры друг от друга - точкой с запятой. Имена параметров одного типа можно объединять в подсписки, в которых имена отделяются друг от друга запятой.

Между формальными и фактическими параметрами должно быть полное соответствие:

  •  формальных и фактических параметров должно быть одинаковое количество
  •  порядок следования фактических и формальных параметров должен быть один и тот же;
  •  тип каждого фактического параметра должен совпадать с типом соответствующего формального параметра.

Параметры-значения. Параметры-значения используются только для передачи исходных данных из основной программы в подпрограмму (процедуру или функцию), в списке формальных параметров они перечисляются через запятую с обязательным указанием их типов, как было, например, в выше приведенных примерах:

procedure Abort(Msg: string);

function Step(N : integer; X : real): real;

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

Пример программы с использованием передачи параметров по значению:

program Pr1;

var

А,В : real;

{Процедура вычисления квадратов двух чисел и вывода на экран их суммы}

procedure Sum_Square(X, Y : real);  {X,Y - формальные параметры}

begin

Х:=Х*Х;

Y:=Y*Y;

Writeln('Cyммa квадратов = ',X+Y);

end;                    {Конец процедуры}

begin                   {Начало основной программы}

А:=1.5;

В:=3.4;

Sum_Square (А,В) ; {Вызов процедуры Sum_Square с передачей ей значений фактических параметров А и В}

end.

При вызове процедуры Sum_Square с фактическими параметрами А, В значения этих параметров (один раз) копируются в соответствующие формальные параметры X, Y, и дальнейшие преобразования формальных параметров X,Y внутри процедуры Sum_Square уже никак не влияют на значения переменных А, В.

Параметры-переменные. Параметры-переменные используются для определения результатов выполнения процедуры и в списке формальных параметров перечисляются после зарезервированного слова Var с обязательным указанием типа. Каждому формальному параметру, объявленному как параметр-переменная, должен соответствовать фактический параметр в виде переменной соответствующего типа, например:

procedure Example(var M,N : integer; var Y : real) ;

Если формальный параметр определен как параметр-переменная, то при вызове процедуры ей передается сама переменная, а не ее копия, и изменение параметра-переменной приводит к изменению фактического параметра в вызывающей программе. Следовательно, исходные данные в процедуру из программы могут передаваться как через параметры-значения, так и через параметры-переменные, а результаты работы процедуры возвращаются в вызывающую программу только через параметры-переменные.

Пример программы, использующей параметры-переменные:

program Sum_Sub_Square;

var  A,В : real ;

SumAB, SubAB : real;

{Процедура с параметрами-переменными Sum, Sub}

procedure Sum_Sub(X,Y : real; var Sum, Sub : real);

begin

Sum:=X*X+Y*Y;

Sub:=X*X-Y*Y;

end;  {Конец процедуры} 

begin  {Начало основной программы}

А:=1.5;

В:=3.4;

Sum_Sub(A,B, SumAB,SubAB);   {Вызов процедуры с передачей ей фактических параметров-значений А, В и параметров-переменных SumAB, SubAB}

Writeln('Сумма квадратов чисел',А,' и ',В,'= ', SumAB);

Writeln("Разность квадратов чисел',А,’и',В,'=', SubAB);

end.

Индивидуальные задания:

Во всех заданиях подпрограммы составить таким образом, чтобы ввод-вывод данных осуществлялся в основной программе:

  1.  Описать функцию  Max4(A,B,C,D) вещественного типа, находящую максимальное из четырех вещественных чисел AB, C и D. С помощью этой функции найти максимальные из наборов (A,B,C,D), (A,B,C,E), (A,C,D,E), если даны числа A, B, C, D, E.
  2.  Составить подпрограмму, которая формирует и выводит на печать единичную матрицу порядка N. Проверить ее работу на матрицах порядка 3, 5,7,12,14.
  3.  Составить подпрограмму решения квадратного уравнения ах2 +bx +c = 0.
  4.  С помощью составленных заранее подпрограмм поиска минимального и максимального элементов массива Y найти разницу между минимумом и максимумом массивов А(10), В(17). Для передачи имени массива в подпрограмму использовать понятие открытого массива. Элементы массивов вычисляются по формулам: .
  5.  Составить подпрограмму умножения одномерных матриц и подпрограмму их сравнения.
  6.  Разработать подпрограммы сортировки одномерного массива по возрастанию и убыванию.
  7.  Описать функцию Fib(N) целого типа, вычисляющую N-е число Фибоначчи F(N) по формуле: F(1) = F(2) = 1,   F(k) = F(k–2) + F(k–1),   k = 3, 4, ... . С помощью этой функции вычислить 10 чисел Фибоначчи с указанными номерами.
  8.  Описать процедуру SumDigit(N,S), находящую сумму цифр S целого числа N (99>=N>=10) (— входной, S — выходной параметр). Используя эту процедуру, найти суммы цифр пяти данных чисел.
  9.  Описать функцию Otr(Ax,Ay,Bx,By) вещественного типа, находящую длину отрезка AB на плоскости по координатам его концов: |AB| = sqrt((Ax-Bx)2 + (Ay-By)2) (Ax, Ay, Bx, By — вещественные параметры). С помощью этой функции найти длины отрезков AB, AC, AD, если даны координаты точек A, B, C, D.
  10.  Описать функцию Perim(Ax,Ay,Bx,By,Cx,Cy) вещественного типа, находящую периметр треугольника ABC по координатам его вершин (Ax, Ay, Bx, By, Cx, Cy — вещественные параметры). С помощью этой функции найти периметры треугольников ABC, ABD, ACD, если даны координаты точек A, B, C, D.
  11.  Описать функцию Area(Ax,Ay,Bx,By,Cx,Cy) вещественного типа, находящую площадь треугольника ABC по формуле Герона: SABC = sqrt(p·(p–|AB|)·(p–|AC|)·(p–|BC|)), где p — полупериметр. С помощью этой функции найти площади треугольников ABC, ABD, ACD, если даны координаты точек A, B, C, D.
  12.  Описать процедуру Dist(Px,Py,Ax,Ay,Bx,By,D), находящую расстояние D от точки P до прямой AB по формуле D = 2SPAB / |AB|, где SPAB — площадь треугольника PAB. С помощью этой процедуры найти расстояния от точки P до прямых AB, AC, BC, если даны координаты точек P, A, B, C.
  13.  Описать процедуру Heights(Ax,Ay,Bx,By,Cx,Cy,hA,hB,hC), находящую высоты hA, hB, hC треугольника ABC, проведенные соответственно из вершин A, B, C. С помощью этой процедуры найти высоты треугольников ABC, ABD, ACD, если даны координаты точек A, B, C, D.
  14.  Описать функцию Min3(A,B,C) вещественного типа, находящую минимальное из трех вещественных чисел A, B и C. С помощью этой функции найти минимальные из наборов (A,B,C), (A,B,D), (A,C,D), если даны числа A, B, C, D.
  15.  Описать функцию Max3(A,B,C) вещественного типа, находящую максимальное из трех вещественных чисел A, B и C. С помощью этой функции найти максимальные из наборов (A,B,C), (A,B,D), (A,C,D), если даны числа A, B, C, D.
  16.  Составить пользовательскую процедуру или функцию для вычисления произведения:
    (12/(1+1)2) * ( 22/(2+1)2) * ( 32/(3+1)2) * ··· * (n2/(n+1)2).
  17.  Составить пользовательскую процедуру или функцию для вычисления суммы:
    (11+1)/1 + (22+1)/(1*2) + ( 33+1)/(1*2*3) + ··· + (nn+1)/(1*2*3*4* ··· * n);
  18.  Составить пользовательскую процедуру или функцию для вычисления n-ого члена последовательности:  b0=cos21; b1=sin21; bk=2 bk-1+ bk-2, где k=2,3,4, ···  n.
  19.  Составить пользовательскую процедуру или функцию для вычисления n-ого члена последовательности:  z1=5; zn=1+3/ zn-1, где n=2,3,4, ···  k.
  20.  Составить пользовательскую процедуру или функцию для вычисления произведения:
    (1/(1+1)2) * ( 2/(2+1)2) * ( 3/(3+1)2) * ··· * (n/(n+1)2).
  21.  Даны значения c, d, m, k. Напишите функцию min для вычисления значения следующего выражения:    (min(c+d,m,k)+min(k,c,m))/(3+min(k,d-m,c+m)).
  22.  Дана целочисленная последовательность элементов c1, c2, c3, ··· , c2n, где n<=10.  Написать процедуру пользователя для вычисления: a2 + b3,  где a = c1+ c2 +c3 +··· + cn;  b = cn+1+ cn+2 +cn+3 +··· + c2n.  
  23.  Дана последовательность из n (n<=13) натуральных чисел. Найти в этой последовательности наибольшую по длине последовательность рядом стоящих элементов, представляющих собой степени числа три.
  24.  Составить подпрограмму вычисления факториала. С помощью подпрограммы вычислить: 5!, 12!, 17!.
  25.  Написать подпрограмму возведения числа в целую степень. Проверить ее работу на следующих данных: 210, З5,70.
  26.  Составить подпрограмму, определяющую, является ли заданное число простым, то есть делящимся только на единицу и на само себя. С помощью подпрограммы определить, являются ли простыми числа 6, 11, 21, 31.
  27.  Дана последовательность из n (n<=13) натуральных чисел. Найти в этой последовательности наибольшую по длине последовательность рядом стоящих элементов, представляющих собой простые числа.
  28.  Вероятность того, что в указанный морской порт в день прибывает k кораблей и барж, равна P(k) = 3k e3/ k! .Составить вспомогательный алгоритм для вычисления вероятности прибытия кораблей и барж для k = 13,25,100.
  29.  Составить подпрограмму сложения одномерных матриц и подпрограмму их сравнения.
  30.  Разработать подпрограммы определения суммы элементов К-го столбца массива и произведения элементов М-ой строки.

PAGE   \* MERGEFORMAT3


 

А также другие работы, которые могут Вас заинтересовать

37153. оссия при Екатерине Второй, политика «просвещенного абсолютизма» 18.68 KB
  Колоссальное количество монастырских крестьян были переданы государству благодаря чему пополнилась казна России. Как и во многих других государствах Европы для России в период правления Екатерины II была характерна политика просвещенного абсолютизма которая предполагала правителя мудрого покровительствовавшего искусству благодетеля всей науки.И все же проявлением политики просвещенного абсолютизма было создание и деятельность комиссии по составлению нового законодательного свода России вместо отжившего Соборного Уложения 1649 г. В...
37154. Внутренняя политика первой четверти XIX века. Александр Первый. Негласный комитет 131.84 KB
  Александр Первый. ЭПОХА АЛЕКСАНДРА I АЛЕКСАНДР I 1777 1825 Четверть века царствования императора Александра Павловича ярчайшая эпоха русской истории. Во время царствования императора Александра I представители образованной части русского общества почувствовали себя европейцами. 245 Портрет Александра I.
37155. «Восточный вопрос» во внешней политике России в 30-50 гг. XIX в. Крымская война 20.83 KB
  Восточный вопрос во внешней политике России в 3050 гг. в центре внешней политики России находился Восточный вопрос сложный конгломерат острейших международных противоречий от разрешения которых зависели безопасность границ империи дальнейшие перспективы развития черноморской торговли и экономическое состояние южных губерний. Это движение традиционно получало поддержку России выступавшей в качестве заступницы славян христианского вероисповедания преимущественно населявших Балканы. Такая позиция объективно способствовавшая освобождению...
37156. Правительство и общество при Николае Первом 37.95 KB
  Общественное движение в России во второй четверти XIX в. Поражение декабристов явилось тяжелым ударом для общественного движения в России. Единение народа и монарха народность объявлялось третьим коренным чувством в России. Они были проникнуты глубоким пессимизмом разочарованием в прошлом России и неверием в ее будущее.
37157. Отмена крепостного права. Содержание и сущность реформ 1861 г., их историческое значение 28.36 KB
  Эти акты приняли такой размах что правительство незадолго до реформы специальными указами было вынуждено наложить запрет на подобные действия. Первоначально издатели Колокола верили в либеральные намерения нового императора Александра II 18551881 и возлагали определенные надежды на разумно проведенные реформы сверху .Левшиным была разработана правительственная программа крестьянской реформы которая хотя и давала крепостным гражданские права но сохраняла всю землю в собственности помещика и предоставляла последнему вотчинную власть в...
37158. Особенности генезиса капитализма в России в конце XIX века 57.55 KB
  Особенности генезиса капитализма в России в конце XIX века. Развитие капитализма и формирование промышленного пролетариата в России в 60х середине 90х годов XIX в. Капиталистические отношения охватывали все сферы экономики способствовали ускорению темпов развития народного хозяйства России. Сельское хозяйство России в пореформенный период И после реформы 1861 г .
37159. Социально-политический строй России начала XX века. Основные классы и сословия 24.63 KB
  Социальнополитический строй России начала XX века. Социальная структура России в конце XIX начале XX в. на тысячу населения приходилось 44 родившихся и снижения смертности которая впрочем в России в 1913 г . Социальная структура России в конце XIX начале XX в.
37160. Древняя Русь при первых Рюриковичах. Внутренняя и внешняя политика. «Повесть временных лет». Норманнская теория 21.81 KB
  Походами на вятичей литовцев радимичей болгар Владимир укрепил владения Киевской Руси. Принятие христианства не только уравняло Киевскую Русь с соседними государствами но и оказало огромное влияние на культуру быт и нравы древней Руси.При Ярославе Владимировиче прозванном Мудрым начал оформляться единый для всей Руси судебный кодекс Русская Правда. В Киеве Новгороде Полоцке были построены величественные соборы святой Софии что должно было показать церковную самостоятельность Руси.
37161. Принятие христианства. Владимир Первый. Развитие Руси при Ярославе Мудром. «Русская правда» 18.69 KB
  Развитие Руси при Ярославе Мудром. Древние русичи были язычниками поклонялись множеству богов бог неба Сварог бог Солнца Дажбог бог грома и молний Перун и т. Христианство было уже известно на Руси и до крещения Владимира. Однако будущий креститель Руси начинал свой путь убежденным язычником и прошло немало времени пока изменились его взгляды.