42007

ДОСЛІДЖЕННЯ ОПИСУ ТА ВИКОРИСТАННЯ КЛАСІВ

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

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

Вивчити опис класу в мовах програмування С та С. Написати програми мовами програмування С та С що демонструють випадки застосування класу згідно з варіантом дод. Короткі теоретичні відомості Мова С Опис класу: опис класу ::= clss позначка класу { тіло класу }; тіло класу ::= {privte:} закритий елемент public: відкритий елемент {protected:} захищений елемент позначка класу ::= ідентифікатор закритий елемент ::= опис змінної метод прототип методу опис статичної змінної опис статичної змінної ::= sttic опис змінної...

Украинкский

2013-10-26

130 KB

19 чел.

Лабораторна робота  1.1

ДОСЛІДЖЕННЯ ОПИСУ ТА ВИКОРИСТАННЯ КЛАСІВ

Мета роботи  вивчити опис класів, навчитися створювати, використовувати та знищувати об’єкти класів.

Завдання

1. Вивчити опис класу в мовах програмування С++ та С#.

2. Вивчити механізми створення, використання та знищення об’єктів класів в мовах програмування С++ та С#.

3. Написати програми мовами програмування С++ та С#, що демонструють випадки застосування класу, згідно з варіантом (дод. 1).

Короткі теоретичні відомості

Мова С++

Опис класу:

<опис класу> ::= class <позначка класу> {<тіло класу>};

<тіло класу> ::= {private:} <закритий елемент>

     public: <відкритий елемент>

    {protected:} <захищений елемент>

<позначка класу> ::= <ідентифікатор>

<закритий елемент> ::= <опис змінної> | <метод> |

 <прототип методу> | <опис статичної змінної>

<опис статичної змінної> ::= static <опис змінної>

<відкритий елемент> ::= <конструктор> | <деструктор> |

 <опис змінної> | <метод> | <прототип методу> |

 <метод типу static> | <метод типу const>

<захищений елемент> ::= <опис змінної> | <метод> |

        <прототип методу>

<конструктор> ::= <позначка класу>

       ({<список формальних параметрів>}0)

       {<тіло конструктора>}

<тіло конструктора> ::= <тіло закритої підпрограми>

<деструктор> ::= ~<позначка класу> ( ) {<тіло деструктора>}

<тіло деструктора> :: = <тіло закритої підпрограми>

<метод> ::= <опис функції>

<прототип методу> ::= <опис прототипу функції>

<метод типу static> ::= static <метод>

<метод типу const> ::=<позначка типу значення, що вироблюється> 

      <позначка методу> ({<список формальних параметрів>}0) const

  <тіло методу>

Опис методу поза класом:

<опис методу поза класом> ::= <опис методу> |

 <опис методу типу static> | <опис методу типу const>

<опис методу> ::= <позначка типу значення, що вироблюється> 

       <позначка класу>::<позначка методу>

       ({<список формальних параметрів>}0)

       <тіло методу>

<позначка методу> ::= <ідентифікатор>

<тіло методу> ::= {{<оператори>}0}

<опис методу типу static> ::= <опис методу>

<опис методу типу const> ::=

  <позначка типу значення, що вироблюється > 

  <позначка класу>::<позначка методу>

  ({<список формальних параметрів>}0) const

  <тіло методу>

Опис конструктора та деструктора поза класом:

<опис конструктора поза класом> ::=

  <позначка класу>::<конструктор>

<опис деструктора поза класом> ::=

  <позначка класу>::~<деструктор>

Опис статичних елементів поза класом:

<позначка типу> <позначка класу> :: <ідентифікатор> =

     <статичний вираз>

Використання конструкторів, методів та статичних елементів:

<використання конструкторів> ::= <позначка класу>

            <позначка об'єкта>;

<позначка об'єкта> ::= <ідентифікатор> | <ідентифікатор>

 ({<список фактичних параметрів>}) | &<ідентифікатор> |

 *<ідентифікатор> | <ідентифікатор>[<R-вираз>]

<використання методів> ::= <ідентифікатор об'єкта>.

  <виклик методу> | <ідентифікатор об'єкта>-><виклик методу>

<виклик методу> ::= <виклик функції>

<використання методу типу const> ::=  <використання методів>

<використання методу типу static> ::= <позначка класу> :: 

      <виклик методу>

Мова С#

Опис класу:

<опис класу> ::= class  <позначка класу>  {<тіло класу>}

<тіло класу> ::= {private <закритий елемент>}0 

    {public  <відкритий елемент>}0

    {protected  <захищений елемент>}0 

<позначка класу> ::= <ідентифікатор>

<закритий елемент> ::=  <опис змінної> | <метод> |

 <метод типу static>  | <опис статичної змінної>

<опис статичної змінної> ::= static <опис змінної>

<відкритий елемент> ::= <конструктор> | <деструктор> |

 <опис змінної> | <метод>| <метод типу static>  

<захищений елемент> ::= <опис змінної> | <метод>

<конструктор> ::= <позначка класу>

       ({<список формальних параметрів>}0)

       {<тіло конструктора>}

<тіло конструктора> ::= <тіло закритої підпрограми>

<деструктор> ::= ~<позначка класу> ( ) {<тіло деструктора>}

<тіло деструктора> :: = <тіло закритої підпрограми>

<метод> ::= <опис функції>

<метод типу static> ::= static <метод>

<метод типу const> ::=<позначка типу значення, що вироблюється> 

     <позначка методу> ({<список формальних параметрів>}0)  const

<тіло методу>


Методичні рекомендації

Опис класу може складатися з трьох частин: закритої, відкритої та захищеної. За умовчанням першою частиною є закрита. Тому рекомендується починати опис класу із закритих елементів.

Для наочності опису класу користувачеві рекомендується опис таких відкритих елементів, як <конструктор>, <деструктор> та <метод>, наводити поза класом. Пам’ятайте, якщо в класі описаний статичний елемент, то його необхідно обов’язково визначити та ініціювати поза класом.

Пишучи програму мовою С++, опис класу слід виконувати в окремому заголовковому файлі (.h), а опис методів у файлі .сpp. Пишучи програму мовою С# опис класу слід виконувати в окремому від головної програми файлі .cs.

Всі методи класу, окрім <метод типу static>, при виклику одержують неявний аргумент – вказівну this (тобто адресу об’єкта).

Користувачу в роботі необхідно самостійно навести опис усіх елементів <конструктор> та <деструктор>, незважаючи на те, що в мові С# <конструктор> за умовчанням (<конструктор> без параметрів) та <деструктор> створюються автоматично.

Контрольні запитання та завдання

1. Що таке клас? Що відрізняє клас і об’єкт?

2. З яких частин складається опис класу?

3. Що таке конструктор та деструктор?

4. Наведіть  приклади типів конструкторів.

5. Для чого використовується конструктор?

6. Для чого використовується деструктор?

7. Наведіть приклади використання методів.

  Література: [1]; [2]; [5]; [6].


Лабораторна робота  1.3

ДОСЛІДЖЕННЯ КОНТЕЙНЕРНИХ КЛАСІВ

Мета роботи – дослідити опис контейнерних класів, набути навички їх створення та використання в об’єктно-орієнтованих мовах програмування С++ та С#.

Завдання

1. Вивчити та дослідити опис контейнерних класів у мовах програмування С++ та С#.

2. Написати програми мовами програмування С++ та С#, що демонструють випадки застосування контейнерних класів, згідно з варіантом (дод. 3).

Теоретичні відомості

Опис контейнерного класу:

<опис контейнерного класу> ::= class <позначка класу>

   { <опис об'єктів інших класів>

      <опис елементів контейнерного класу> };

<опис об'єктів інших класів> ::= <позначка класу >

<позначка об’єкта>; | <позначка класу > *<позначка об’єкта>; |

<позначка класу > <позначка об’єкта>[R-вираз];

Контрольні запитання

1. Що таке контейнерний клас?

2. Який порядок створення обєкта контейнерного класу.

Література: [3]; [4]; [6]; [7].

Лабораторна робота  1.5

ДОСЛІДЖЕННЯ ПЕРЕВАНТАЖЕННЯ ОПЕРАЦІЙ ТА ОПЕРАТОРІВ

Мета роботи – дослідити перевантаження унарних та бінарних операцій та операторів.

Завдання

1. Дослідити опис перевантаження операцій у мовах програмування С++ та С#.

2. Дослідити опис перевантаження операторів у мовах програмування С++ та С#.

3. Написати програми мовами С++ та С# для дослідження опису та використання перевантаження операцій та операторів згідно з варіантом  (дод. 5).

Теоретичні відомості

Мова С++

Опис перевантаження операцій:

<опис перевантаження операцій> ::=

<опис перевантаження унарної операції> |

<опис перевантаження бінарної операції>

<опис перевантаження унарної операції> ::= <позначка класу>

            operator <позначка унарної операції> ( )

{<тіло перевантаженої унарної операції>}

<тіло перевантаженої унарної операції> ::= <тіло закритої

підпрограми, яке закінчується оператором  return *this;>

<опис перевантаження бінарної операції> ::=

<позначка типу значення, що вироблюється>

operator <позначка бінарної операції> (<параметр> )

{<тіло перевантаженої операції>}

<тіло перевантаженої операції>::= <тіло закритої підпрограми>

<параметр> ::= <другий операнд перевантаженої бінарної операції>

Опис перевантаження оператора привласнення:

<опис перевантаження оператора привласнення>::=

<позначка класу>& operator = (<пар. const>)

{<тіло перевантаженого оператора>}

<пар. const> ::= const <позначка класу> & <ідентифікатор>

<тіло перевантаженого оператора> ::= <тіло закритої підпрограми,

яке закінчується оператором return *this;>

Мова С#

Опис перевантаження операцій:

<опис перевантаження операцій> ::=

<опис перевантаження унарної операції> |

<опис перевантаження бінарної операції>

<опис перевантаження унарної операції> ::= public static 

<позначка класу> operator <позначка унарної операції>

(<параметр>) {<тіло перевантаженої унарної операції>}

<параметр> ::= <операнд перевантаженої унарної операції>

<тіло перевантаженої унарної операції> ::= <тіло закритої

підпрограми>

<опис перевантаження бінарної операції> ::= public static 

<позначка типу значення, що вироблюється>   operator

<позначка бінарної операції> (<параметр>, <параметр>)

{<тіло перевантаженої операції>}

<тіло перевантаженої операції>::= <тіло закритої підпрограми>

<параметр> ::= <операнд перевантаженої бінарної операції>

Методичні рекомендації

Пам’ятайте, що якщо при використанні бінарної операції або оператора з об’єктом вашого класу тип першого операнда не збігається з типом вашого класу, то опис перевантаження такої операції або оператора необхідно робити як дружню функцію. У цьому випадку обидва операнди передаються в списку параметрів.

Якщо перевантаження унарної операції описується як метод класу, то в нього відсутній список параметрів, тому що єдиний операнд цієї операції є неявним аргументом (*this).

Контрольні запитання та завдання

1. Що означає перевантажити оператор чи операцію?

2. Наведіть приклади перевантаження унарних операцій.

3. Наведіть приклади перевантаження бінарних операцій та операторів.

4. Покажіть, як використовуються перевантажені операції та оператори.

Література: [1] - [3]; [5].

Лабораторна робота  1.6

ДОСЛІДЖЕННЯ МЕХАНІЗМУ ОДИНОЧНОГО УСПАДКУВАННЯ КЛАСІВ

Мета роботи – дослідити механізм одиночного успадкування класів.

Завдання

1. Дослідити механізм одиночного успадкування класів у мовах програмування С++ та С#.

2. Написати програми мовами С++ та С#, що демонструють застосування механізму одиночного успадкування класів згідно з варіантом (дод. 6).

Теоретичні відомості

Мова С++

Опис базового класу:

<опис базового класу> ::= <опис класу>

Опис похідного класу:

<опис похідного класу> ::= class <позначка класу> :

                       <атрибут доступу>

           <позначка базового класу>

          {<тіло похідного класу>};

<атрибут доступу> ::= {private} | public | protected

<позначка базового класу> ::= <ідентифікатор>

<тіло похідного класу> ::= <тіло класу>

Якщо базовий клас успадковується з атрибутом доступу  public, то елементи public базового класу стають елементами public похідного класу. Елементи protected базового класу стають елементами protected похідного класу.  Елементи private базового класу  не успадковуються.  

Якщо базовий клас успадковується з атрибутом доступу private то елементи public і protected базового класу стають елементами private похідного класу. Елементи private базового класу не успадковуються.

Якщо базовий клас успадковується з атрибутом доступу protected, то елементи public і protected базового класу стають елементами protected похідного класу. Елементи private базового класу  не успадковуються.

Явний виклик конструктора базового класу:

<виклик конструктора базового класу> ::=

<опис конструктора похідного класу>

<опис конструктора похідного класу> ::=

    <позначка похідного класу>

  (<список формальних параметрів базового та похідного класів>) :

  <позначка базового класу>

  (<список фактичних параметрів базового класу>)

  {<тіло конструктора похідного класу>}

Мова С#

Опис базового класу:

<опис базового класу> ::= <опис класу>

Опис похідного класу:

<опис похідного класу> ::= class <позначка класу> :

           <позначка базового класу>

          {<тіло похідного класу>}

<позначка базового класу> ::= <ідентифікатор>

<тіло похідного класу> ::= <тіло класу>

Явний виклик конструктора базового класу:

<виклик конструктора базового класу> ::=

<опис конструктора похідного класу>

<опис конструктора похідного класу> ::=

    <позначка похідного класу>

  (<список формальних параметрів базового та похідного класів>) :

  base (<список фактичних параметрів базового класу>)

  {<тіло конструктора похідного класу>}

Методичні рекомендації

Необхідно пам'ятати, що елементи <конструктор> та <деструктор> базового класу не успадковуються.

При створенні об'єкта похідного класу завжди спочатку викликається <конструктор> базового класу, а потім <конструктор> похідного класу. Тому для ініціювання закритих елементів базового класу необхідно явно звертатися до конструктора базового класу.

Контрольні запитання та завдання

1. У чому полягає сутність механізму успадкування?

2. Розкажіть, які бувають типи успадкування.

3. Поясніть роль атрибута доступу в успадкуванні.

4. Наведіть приклади використання методів базового класу при його успадкуванні з атрибутом доступу public.

5. Наведіть приклади використання методів базового класу при його успадкуванні  з атрибутом доступу private.

6. Наведіть приклади використання методів базового класу при його успадкуванні  з атрибутом доступу protected.

Література: [1] - [3]; [5]; [6].

Лабораторна робота  2.1

ДОСЛІДЖЕННЯ ПОЛІМОРФІЗМУ

Мета роботи – дослідити застосування поліморфізму в мовах об'єктно-орієнтованого програмування на прикладі мов С++ та С#.

 

Завдання

1. Дослідити механізм поліморфізму.

2. Дослідити віртуальні функції.

3. Написати програми мовами С++ та С# для дослідження поліморфізму згідно з варіантом (дод. 8).

Теоретичні відомості

Мова С++

Опис віртуальних функцій:

<опис віртуальної функції> ::= virtual <опис функції>

<опис суто віртуальної функції> ::=

 virtual <опис прототипу функції> = 0;

Використання віртуальної функції:

<використання віртуальної функції> ::=

 <використання методу класу>

Мова С#

Опис віртуальних функцій:

<опис віртуальної функції> ::= virtual <опис функції>

<опис суто віртуальної функції> ::=

 abstract <опис прототипу функції>;

<перевантаження віртуальної функції>::= override <опис функції>;

Використання віртуальної функції:

<використання віртуальної функції> ::=

 <використання методу класу>

Методичні рекомендації

Якщо функція була оголошена як віртуальна, то вона зберігає цю властивість у всіх перевизначеннях у похідних класах. Описуючи віртуальну функцію у похідному класі, можна не використовувати модіфікатор virtual.

Якщо в класі є хоча б один <опис суто віртуальної функції>, то такий клас називається абстрактним. Пам'ятайте, що абстрактний базовий клас використовується тільки для успадкування інтерфейсу та реалізації, тому його об’єкти не можуть бути реалізованими.

Контрольні запитання

1. У чому полягає сутність поліморфізму?

2. Наведіть приклади застосування поліморфізму.

3. Яка функція називається віртуальною?

4. Яка функція називається суто віртуальною?

5. Як використовуються віртуальні функції?

6. Який клас називається абстрактним?

7. Наведіть приклади абстрактного класу.

Література: [1] - [3]; [5]; [6].

Лабораторна робота  2.3

ДОСЛІДЖЕННЯ ПОТОКОВОГО ВВЕДЕННЯ/ВИВЕДЕННЯ

Мета роботи – дослідити потокове введення/виведення, перевантаження операцій >>, <<, можливості форматування введення/виведення.

Завдання

1. Вивчити опис потокового введення/виведення у мові С++.

2. Дослідити опис перевантаження операцій >>  та  << у мові С++.

3. Дослідити можливості форматування введення/виведення у мові С++.

4. Написати програму мовою С++ для дослідження опису та використання потокового введення/виведення згідно з варіантом (дод. 10).

Теоретичні відомості

Потокове введення:

<потокове введення> ::= <об’єкт класу istream>  >>  <параметр1>

      {>>  <параметр1>}0 ;

<об’єкт класу istream> ::= cin

<параметр1> ::= <ідентифікатор>

Потокове виведення:

<потокове виведення> ::= <об’єкт класу ostream>  <<  <параметр2>

        {<<  <параметр2>}0 {<< endl}0;

<об’єкт класу ostream>  ::= cout

<параметр2> ::= <ідентифікатор> | <рядок символів> |

     | <маніпулятор>

<маніпулятор> ::= <стандартні функції форматування виведення

      значень з файла iomanip.h>

Опис перевантаження операції  >>:

<опис перевантаження операції  >> > ::= istream& operator >>

 (istream& <пар.1>,<форм.парам.1>)

{<тіло перевантаженого оператора>}

<пар.1> ::= <ідентифікатор об’єкта класу istream>

<форм.парам.1> ::= <опис посилання на об’єкт класу >

Опис перевантаження операції  <<:

<опис перевантаження операції << > ::= ostream& operator <<

 (ostream& <пар.2>, <форм.парам.2>)

  {<тіло перевантаженого оператора>}

<пар.2> ::= <ідентифікатор об’єкта класу ostream>

<форм.парам.2> ::= const <опис посилання на об’єкт класу > |

<опис об’єкта класу>

Сі++: Файл iomanip.h

setbase(<основа>); - встановлює значення системи числення для

           параметрів, що виводяться

<основа> ::= 8 | 10 | 16

setiosflags(<біт прапору>); - встановлює вирівнювання

<біт прапору> ::= 1 | 2

1 – по правому краю; 2 – по лівому краю.

setfill(<символ>); - встановлює символ, яким заповнюються вільні

         позиції для параметра, що виводиться

<символ> ::=  <символьний літерал>

setw(<поле>); - встановлює кількість позицій під параметр,

  що виводиться

<поле> ::= <ціле значення>

setprecision(<поле>); - встановлює кількість позицій після крапки

   для параметра, що виводиться

Методичні рекомендації

Треба пам’ятати, що опис перевантаження операції  >>  або  <<  не може бути методом класу, що описується, а тільки дружньою функцією, бо об’єкт цього класу передається явно, як формальний параметр. Важливо також, щоб під час описування перевантаження потокового введення об’єкт класу, що описаний, передавався через посилання.

Під час описування методів класу, що виводять значення об’єкта, ви повинні використовувати маніпулятори виведення, які описані у файлі iomanip.h. Для використання потокового введення/виведення необхідно в програму включити файл iostream.h.

Контрольні запитання

1. Що таке потік? Як він використовується?

2. Що таке маніпулятори і для чого вони використовуються?

3. Як описується перевантаження операцій  >> та <<?

4. Використання перевантажених операцій  >> та <<?

Література: [1] - [3].

Лабораторна робота 2.4

ДОСЛІДЖЕННЯ РОБОТИ З ФАЙЛАМИ

Мета роботидослідити роботу з файлами з використанням потоків у мові С++.

Завдання

1. Дослідити структуру класів потокового введення/виведення для роботи з файлами у мові С++.

2. Написати програму мовою С++, яка демонструє застосування класів потокового введення/виведення для роботи з файлами на прикладі побудови бази даних про студентів та складається з:

– опису класу "Студент": змінна "студент" пойменованого типу; конструктор за умовчанням для початкової ініціалізації об’єкта; метод введення характеристик об’єкта як перевантаження операції >>; метод виведення характеристик об’єкта як перевантаження операції <<; метод запису об’єкта до файла як перевантаження операції <<; метод читання об’єкта з файла як перевантаження операції >>; метод обробки файла; методи ініціювання та закриття графічного режиму; метод побудови результату обробки файла у вигляді гістограми;

– завдання: створити базу даних про студентів, яка зберігається у файлі, для чого необхідно створити об’єкт класу "Студент", ввести та записати до файла N студентів (N > 5), вивести базу даних про студентів на екран, обробити базу даних і побудувати результат обробки у вигляді гістограми.

3. Варіанти до виконання роботи слід вибирати з дод.11.

Теоретичні відомості

Файлове введення/виведення оброблюється за допомогою файла fstream.h, який включає опис класів ifstream, ofstream та fstream для створення та управляння вхідними та вихідними файловими потоками. Ієрархія класів наведена на мал.1.

Мал. 1. Ієрархія класів потокового введення/виведення

Для правильного відкриття файлових потоків необхідно створити об’єкти потрібних класів відповідними конструкторами, що мають такий опис:

ifstream();

ifstream(const char*);

ifstream(const char*, int);

ofstream();

ofstream(const char*);

ofstream(const char*, int);

fstream();

fstream(const char*, int);

Перший параметр конструкторів з параметрами є рядком символів, який визначає повне ім’я файла, другий параметр – визначає режим відкриття файла (табл. 1).

Таблиця 1

Режим

Опис

ios::in

Читання даних з файла

ios::out

Запис даних до файла

ios::app

Запис даних до файла з доповненням у кінець

ios::ate

Відкриття файла з пошуком його кінця, але запис даних можливе з будь-якої позиції

ios::trunc

Відкриття існуючого файла з очищенням його вмісту

ios::nocreate

Відкриття тільки існуючого файла

ios::noreplace

Відкриття нового файла

ios::binary

Відкриття двоїчного файлу

Конструктор за умовчання створює об’єкт класу, який пізніше буде зв’язаний з файлом за допомогою методу

void open(const char*, int),

який має ті ж самі параметри, що й конструктори з параметрами.

Кожний файл повинний бути закритим за допомогою деструктора відповідного класу або за допомогою методу close().

Запис даних до файла:

<Запис даних до файла> ::=   <об’єкт класу ofstream або fstream>

<<  <параметр>; | <об’єкт класу ofstream або fstream> .write((char*)&< параметр >, int <size>);

<параметр> ::= <ідентифікатор змінної >

<size> ::= sizeof(<параметр>)

Читання даних з файла:

<Читання даних з файла> ::= <об’єкт класу ifstream або fstream>  

>>  <параметр>; | <об’єкт класу ifstream або fstream>

.read((char*)&< параметр >, int <size>);

Методи позиціонування вказівної позиції файла:

seekg(int <пар.> {, int <направлення>}01); – позиціонувати

покажчик читання з файла

seekp(int <пар.> {, int <направлення>}01); – позиціонувати

покажчик запису до файла

Якщо ці методи використовуються з одним параметром, то

<пар.> ::= кількість байтів від початку файла.

Якщо ці методи використовуються з двома параметрами, то

<пар.> ::= кількість байтів, на які потрібно пересунути покажчик

<направлення> ::= ціле значення, що визначає від якої позиції

     необхідно відкласти <пар.>:

ios::cur  – від поточної позиції;

ios::beg – від початку файлу;

ios::end – від кінця файлу.


Методичні рекомендації

Перш ніж описувати клас “Студент” опишіть пойменований тип, який характеризує студента, а в класі опишіть змінну цього пойменованого типу. Всі методи та конструктори класу повинні бути описані поза класом.

Для більш наглядної демонстрації результатів роботи програми необхідно одночасно вивести на екран всю базу даних про студентів та результат обробки файла у вигляді гістограми.

Контрольні запитання та завдання

1. Опишіть ієрархію класів потокового введення/виведення.

2. Яким чином можна відкрити файл для запису?

3. Яким чином можна відкрити файл для читання?

4. Наведіть приклади введення даних до файла.

5. Наведіть приклади виведення даних з файла.

6. Що таке покажчик позиції файла і як виконується  його позиціонування?

Література: [1] - [3].

PAGE  20


ios

stream

ostream

iostream

fstream

ofstream

ifstream


 

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

32293. Понятие законности. Ее роль в процессе развития государства. Требования и гарантии законности в современных государствах 56 KB
  понималась не только как соблюдение существующих законов независимо от того о ком идет речь но прежде всего как осуществление власти основанное на прочно установленных общеизвестных законах в силу всеобщего согласия признаваемых в качестве основных критериев для определения того что справедлива и что несправедливо критериев которыми должны руководствоваться суды при разрешении конфликтов касающихся жизни общества . Ленина который сначала писал о том что диктатура пролетариата власть не связанная никакими законами а затем...
32294. Понятие и основные черты правопорядка. Соотношение правопорядка и законности 48 KB
  Соотношение правопорядка и законности Правопорядок это система общественных отношений которая устанавливается в результате точного и полного осуществления предписаний правовых норм всеми субъектами права. Правопорядок составляет реальную основу современной цивилизованной жизни общества. Нормы права это нормативная предпосылка правопорядка первичное звено механизма правового регулирования моделирующее идеальный правопорядок. Правопорядок есть реализованная система права.
32295. Правомерное поведение. Понятие. Социальная и юридическая природа. Виды правомерного поведения и их характеристика 46 KB
  Правомерное поведение. Правомерное поведение охватывает прежде всего наиболее сознательную часть населения иными словами законопослушных или правопослушных граждан. Такое поведение необходимое условие организованного человеческого общежития взаимоприемлемых цивилизованных отношений. Следовательно правомерное поведение это такое поведение которое соответствует требованиям юридических норм.
32296. Понятие правонарушения и его признаки. Виды правонарушений. Основные пути борьбы с правонарушениями в современном обществе 30.5 KB
  Правонарушение является основным видом неправомерного поведения другой вид которого объективно противоправное деяние и соответственно оно является разновидностью правового то есть юридически значимого поведения поскольку относительно последнего неправомерное поведение наряду с правомерным выступает как его вид. Правонарушению присущи следующие признаки: правонарушение это всегда деяние и только деяние то есть действие бездействие или вербальное словесное поведение. На это обращал внимание еще Гегель; правонарушение это...
32297. Понятие, признаки и отличия юридической ответственности от иных видов социальной ответственности и других мер гос.принуждения. Вопрос об ответственности без вины. Перспективная и ретроспективная ответственность 53 KB
  Перспективная и ретроспективная ответственность. Юридическая ответственность один из видов социальной ответственности индивида Под социальной ответственностью понимается объективная необходимость отвечать за нарушение социальных норм. Социальная ответственность сложная собирательная нравственноправовая философская и этикопсихологическая категория изучаемая многими науками но под разными углами зрения. Различают моральную политическую юридическую общественную гражданскую профессиональную и другие виды ответственности которые в...
32298. Виды юридической ответственности по российскому праву. Их понятие и характеристика 30.5 KB
  Виды юридической ответственности по российскому праву. Отмеченные виды ответственности носят публичный характер т. субъектом привлечения к уголовной и административной ответственности выступает государство. Уголовной ответственности подлежит то лицо которое совершило преступление.
32299. Становление, развитие и историческая оценка теории правового государства 62 KB
  Становление развитие и историческая оценка теории правового государства Представления о государстве как организации осуществляющей свою деятельность на основе закона начали формироваться уже на ранних этапах развития человеческой цивилизации. С идеей правового государства связывались поиски более совершенных и справедливых форм общественной жизни. Ученые древности считали что наиболее разумна и справедлива лишь та политическая форма общежития людей при которой закон общеобязателен как для граждан так и для самого государства. В своей...
32300. Понятие, признаки и черты правового государства 44.5 KB
  Понятие признаки и черты правового государства. Непреходящим общим началом любого правового государства является его связанность правом. При этом право играет приоритетную роль лишь в том случае если оно выступает мерой свободы всех и каждого если действующие законы реально служат интересам народа и государства а их реализация является воплощением справедливости. Недавний опыт показывает что в тоталитарных государствах регулярно издавались правовые акты обеспечивалась их жесткая реализация но такое правовое регулирование являлось...
32301. Экономические, социальные, политические и идейно-нравственные предпосылки возникновения правового государства 31 KB
  Экономические социальные политические и идейнонравственные предпосылки возникновения правового государства. Экономической основой правового государства являются производственные отношения базирующиеся на многоукладности на различных формах собственности государственной коллективной арендной частной акционерной кооперативной и других как равноправных и в одинаковой мере защищенных юридически. Социальную основу правового государства составляет саморегулирующееся гражданское общество которое объединяет свободных граждан носителей...