49907

Игра “Восемь ферзей”

Курсовая

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

В результате выполнения указанной процедуры получим следующий словарь предметной области: Поле для игры в шахматы TField €œАтрибуты Координата Х Координата Y Цвет клетки Ферзи Действия нарисоваться Pint€...

Русский

2014-01-12

86 KB

4 чел.

Министерство образования Российской Федерации

Владимирский государственный университет

Кафедра Информатики и Вычислительной Техники

 Пояснительная записка к курсовой  

работе

Игра “Восемь ферзей”

                        Выполнила: студентка группы ИВТ-398

     Левина И.Н.

           Принял:  доцент Дубов И.Р.

 Владимир 2000

АННОТАЦИЯ

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

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

Атака ферзей реализована в соответствии с правилами игры в шахматы. Чтобы ферзи не были подвержены атаке, они не должны стоять в одной горизонтали, вертикали и диагонали. Ферзи, находящиеся под ударом других ферзей отмечены красным цветом, те которые не подвержены атаке – зеленым.  Игра заканчивается  после того, как пользователь расставит всех ферзей на места, где они будут в безопасности. В программе  предусмотрена возможность возврата ходов на произвольную глубину, с помощью клавиши – Х, а также их повторное выполнение, с помощью клавиши – Z.  

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

                                  ЛИСТ ЗАДАНИЯ

                                     Вариант 15

                                “Восемь ферзей”

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


             Разработка программной системы: игра “Восемь ферзей”

1. Системный анализ_______________________________________

1.1. Составление словаря предметной области______________

1.2. Техническое задание________________________________

1.2.1. Функции системы____________________________

1.2.2. Эксплуатационные требования_________________

1.2.3. Ограничения на процесс разработки____________

2. Проектирование________________________________________

2.1. Идентефикация классов и объектов___________________

2.2. Идентефикация содержания классов и

       связей между классами  и  объектами__________________

2.3. Реализация классов и объектов_______________________

3. Программирование______________________________________

4. Тестирование___________________________________________

4.1. Спецификация тестируемого метода___________________

4.2. Тесты_______________________________________________

  1.  Заключение._____________________________________________

Приложение 1. Диаграммы классов  и объектов________________

Приложение 2. Тексты программы «Восемь ферзей»_________

Приложение 3. Текст программы-драйвера__________________

Список используемой литературы___________________________


1.СИСТЕМНЫЙ АНАЛИЗ

1.1.Составление словаря предметной области

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

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

Поле для игры в шахматы (TField)

                      “Атрибуты

                       Координата Х

                       Координата Y

                       Цвет клетки

                       Ферзи

                       “Действия

                        нарисоваться (Paint)”     

Ферзи (TQueen)

                      “Атрибуты

                       Координата Х

                       Координата Y

                       Координата NewX

                       Координата NewY

                       Цвет

 Количество поражений

  Указатель на массив всех ферзей

 Указатель на поле

Графические координаты ферзя

Количество фигур на поле

                      “Действия

 Нарисоваться (Paint)

 Установить координаты (SetCoords)

 Переместить (MoveTo)

 Проверка на атаки

Проверка на атаки для всех фигур на поле”

Ходы, сделанные пользователем (TMoves)

                      “Атрибуты

                       Координата откуда переместили fx

 Координата откуда переместили fy

 Координата куда переместили fx

 Координата куда переместили fy

 Указатель на следующий ход

 Указатель на предыдущий ход

К полученному словарю предметной области следует сделать                    следующие замечания.

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

Выбранную  ферзя будем выделять инвертированием,  для отмены выбора ферзя необходимо нажать  клавишу  ENTER на клетке, на которой находится выделение.

    Игровое поле  является замкнутой системой.

Для решаемой задачи важным является отображение объектов на  экране.  За координаты поля примем координаты его левого нижнего угла, а координаты фигуры индексируются относительно клеток поля.  Цвета моделируемых объектов будут определяться  посредством следующих  стандартных констант:

LIGHTGRAY – светло-серый

 BLUE – синий

 YELLOW – желтый

 LIGHTRED - светло-красный

 LIGHTGREEN – светло-зеленый

BLACK -  черный

 BROWN - коричневый

     Т.к. при появлении на экране доска занимает определенное положение, то при  определении переменной класса Tfield  в конструктор передаются координаты поля.

     

                            1.2. Техническое задание

Результатом системного анализа является техническое задание на проектирование, составленное с использованием словаря предметной области и сопровождаемое диаграммой классов (рис. 1.), диаграммой объектов (рис.2.),обобщенными алгоритмами абстракций поведения. Техническое задание содержит следующие требования.

                                               1.2.1. Функции системы

  •  управление игрой осуществляется при помощи команд, подаваемых с клавиатуры: движение курсора по доске осуществляется клавишами курсора; выбор ферзя и выбор клетки в которую перемешается этот ферзь осуществляется с помощью клавиши Enter. Атаки ферзей  осуществляются в соответствии с правилами игры в шахматы. Контроль правильности сделанного  хода возложим на  основную программу.

                                          1.2.2 Эксплуатационные требования

технические требования – ПЭВМ IBM PC;

операционная система – MSDOS;

игра управляется одним пользователем.

                                  1.2.3 Ограничения на процесс разработки

срок выполнения игры – до 29.05.00.

   

                               2.ПРОЕКТИРОВАНИЕ

2.1.Идентефикация классов и объектов

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

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

Основная программа расставляет ферзи на главной диагонали.

Проектируемая система должна обеспечивать отображение моделируемых объектов в виде графических фигур на экране дисплея. В связи с этим возникает необходимость  осуществления передвижения  объектов игры по экрану (по игральному полю). Для чего введем  класс Tmoves, который представляет собой двунаправленный динамический список ходов, сделанных пользователем. Цвет клетки, на которой стоит фигура сохраняется в объекте класса  TField, в   массиве F. Массив F заполняется в момент создания объекта класса Tfield. Отрисовка и стирание фигуры с экрана осуществляется одним методом – Paint(action), где action  принимает значения констант, определенных в файле mtypes.cpp: faSet, faClear, которые определяют отрисовку и стирание фигуры соответственно.   

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

2.2. Идентификация содержания классов и связей между классами и объектами

Класс TQueen. Графические объекты в целом характеризуются своим положением на экране и основным цветом, поэтому атрибутами класса TQueen являются точки Х  и Y местоположения фигуры. Графический объект при создании не может сразу располагаться в каком-то месте, поэтому для каждой фигуры в главной программе вызывается метод SetCoords. При моделировании передвижения фигур требуется  их стирать и перерисовывать, поэтому введем соответствующий метод Paint. Этот класс содержит описание методов необходимых для реализации передвижения ферзя по доске.

 Класс  TField. Атрибутами этого класса являются содержащиеся в нем объекты – фигуры. Для класса TField  необходим  соответствующий конструктор , осуществляющий  начальное позиционирование поля.

Класс Tmoves. Ходы, введенные пользователем, сохраняются в двунаправленном списке, каждый элемент которого является объектом класса Tmoves.  Ходы пользователя сохраняются в переменных fx, fy (откуда была перемещена фигура) и переменных tx, ty ( куда была перемещена фигура). А также атрибуты Next и Prev, которые необходимы для создания самого двунаправленного списка.

2.3.Реализация классов и объектов

Все разработанные классы и выявленные объекты должны быть включены в проект.

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

3.ПРОГРАММИРОВАНИЕ

Программирование выполнено на языке C++, что соответствует общим требованиям к курсовой работе. Основу для программирования составляют диаграммы и спецификации этапа проектирования .Необходимые детали разъясняются комментариями в тексте программы

4.ТЕСТИРОВАНИЕ

Все необходимые проверки на правильность ходов и  на корректность ввода пользователя, выполнены либо в классах, либо в главной программе. Поэтому в качестве тестируемого метода я выбрала метод TQueens:: Recheck.

4.1. Спецификация тестируемого метода

Имя:Recheck;

Назначение: Подсчет количества атак данной фигуры другими фигурами;

Аргументы: int blows  (количества атак данной фигуры другими фигурами)

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

                       5. Заключение

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

 Приложение 2

 Приложение 2.

Файл mtypes.cpp.

const kbEnter    = 13;  // коды нажатых клавиш: "Ввод"

const kbUpKey    = 72;  // стрелка вверх

const kbDownKey    = 80;  // стрелка вниз

const kbLeftKey    = 75;  // стрелка влево

const kbRightKey   = 77;  // стрелка вправо

const kbEscape    = 27;  // "Escape" - выход

// множество констант действий для TQueen::Paint()

enum TQueenAction {faSet, faClear};

// классы, см. отдельно каждый файл:

class TQueen; // Queen.cpp      

class TField;  // field.cpp      

class TMoves;  // moves.cpp                              

Файл Queen.cpp.

//#include <conio.h>       

//#include <alloc.h>       

class TQueen {                      

private:       

 TQueen *allQueens;               

                                    

 TField  *paintField;               

                                    

 int     queen[2];                

public:       

 int blows;                          

 int color;                        

 int x,y;                           

 int newx, newy;             

 int Fcount;                 

 TFigure(TQueen *iQueens, TField *iField, int iFc) : x(-1), y(-1), blows(0),

             allQueens(iQueens), paintField(iField), Fcount(iFc)

   { color=LIGHTGREEN; }             

 ~TFigure() { }                      

 void Paint( TQueenAction action );

 void SetCoords(int ix, int iy);     

 void MoveTo(int ix, int iy);        

 void CheckFields();                 

 int  Recheck();                    

};

void TQueen::Paint( TQueenAction action )

{        

setlinestyle(SOLID_LINE, 0, 1);

if (action==faClear && paintField->queens[x][y]) {  

  if (paintField->f[x][y]==1)setcolor(LIGHTGRAY);

  if (paintField->f[x][y]!=1)setcolor(BLUE);

  if (paintField->f[x][y]==1)setfillstyle(SOLID_FILL,LIGHTGRAY);

  if (paintField->f[x][y]!=1)setfillstyle(SOLID_FILL,BLUE);

  fillellipse(paintField->x[x][y]+25,paintField->y[x][y]+25,22,22);             

  paintField->Queens[x][y]=0;      

  return;

}

if (newx>-1 && newy>-1) { x=newx; y=newy; newx=-1; newy=-1; }

for (int i=0; i<2; i++) {

    queen[0]=10+paintField->x[x][y];

    queen[1]=-10+paintField->y[x][y];

}

setcolor(0);

setfillstyle(SOLID_FILL, color);

fillellipse(queen[0],queen[1],22,22);

setcolor(15);

paintField->queens[x][y]=this;        

TQueen *z=allQueens;                 

for (i=0; i<Fcount; i++, z++)              

  if (z->Recheck()) z->Paint(faSet);   

};

int TQueen::Recheck() {

 int t=blows;            

 blows=0;

 CheckFields();

if (blows) color=LIGHTRED; else color=LIGHTGREEN;

 if (blows!=t) return 1; else return 0;  

}

void TQueen::SetCoords(int ix, int iy) {    

if (x<0 || y<0) { x=newx=ix; y=newy=iy; } else MoveTo(ix, iy);

}

void TQueen::MoveTo(int ix, int iy) {

if (!allQueens) return;

if (ix<-1 || iy<-1 || ix>7 || iy>7) return;

Paint(faClear);

newx=ix; newy=iy;

Paint(faSet);

};

void TQueen::CheckFields() {  

int i, d1, d2;

TQueen *z={allQueens};

for (i=0; i<Fcount; i++) {        

  if (!z) return;

d1=y-x; d2=y+x;

if (z!=this && z->x>-1 && z->y>-1)  

    if (x==z->x || y==z->y || z->y==d1+z->x || z->y==d2-z->x)

      blows++;

       z++;  }

}

Файл moves.cpp.

class TMoves {

public:

 int fx, fy, tx, ty;

 TMoves *next, *prev;

 TMoves(int ifx, int ify, int itx, int ity, TMoves *Head) :

           fx(ifx), fy(ify), tx(itx), ty(ity), next(0), prev(0) {

           if (!Head) return;

next=Head;

Head->prev=this;

};

 ~TMoves() { };       

};

Файл field.cpp.

//#include <conio.h>   

//#include <iostream.h>   

#include <graphics.h>   

#include "mtypes.cpp"   

class TField {

private:   

public:   

int x[9][9];

int y[9][9];

int f[8][8];

TQueen *queens[8][8];

TField(int ix, int iy);

void Paint();

};   

 

TField::TField(int ix, int iy)   

{   

for (int i=0; i<9; i++)  

for (int j=0; j<9; j++) {   

 x[i][j]=i*50+ix;

 y[i][j]=480-(50*j+iy);

if (i<8 && j<8) queens[i][ j]=0;

}   

}   

void TField::Paint()   

{   

int t=1;   

for (int i=0; i<8; i++) {

for (int j=0; j<8; j++) {   

if (t==1)setfillstyle(SOLID_FILL,LIGHTGRAY);

if (t!=1)setfillstyle(SOLID_FILL,BLUE); 

bar(x[i][j], y[i][j], x[i+1][j+1], y[i+1][j+1]);

f[i][j]=t;   

t=1-t;  

}   

t=1-t;  

}   

setlinestyle(SOLID_LINE, 0, 1);

setcolor(BROWN);   

rectangle(x[0][0]-1, y[0][0]+1,x[8][8]+1, y[8][8]-1);

};   

Файл  main.cpp.    

#include "moves.cpp"  

#include "field.cpp"  

#include "queens.cpp"  

#include <conio.h>   

#include <stdio.h>

#include <graphics.h>  

void ClearSelection(TField *field, int x, int y) {

 if (field->f[x][y]==1)setcolor(LIGHTGRAY);  

 if (field->f[x][y]!=1)setcolor(BLUE);    

 setlinestyle(SOLID_LINE, 0, 3);

rectangle(field->x[x][y]+1, field->y[x][y]-1,

    field->x[x+1][y+1]-2, field->y[x+1][y+1]+2);

}   

void SetSelection(TField *field, int x, int y) {

 setlinestyle(SOLID_LINE, 0, 3);   

setcolor(YELLOW);   

rectangle(field->x[x][y]+1, field->y[x][y]-1,   

   field->x[x+1][y+1]-2, field->y[x+1][y+1]+2);  

}   

void main()   

{   

TField       field(119, 39);

TQueen      queens[8] = {TQueen(&queens[0], &field, 8),

                                          TQueen(&queens[0], &field, 8),

                                          TQueen(&queens[0], &field, 8),

                                          TQueen(&queens[0], &field, 8),

                                          TQueen(&queens[0], &field, 8),

                                          TQueen(&queens[0], &field, 8),

                                          TQueen(&queens[0], &field, 8),

                                          TQueen(&queens[0], &field, 8)};

int          i;

 TQueen      *z, *t;

 char       ch;

 int       x=3, y=3, dx=0, dy=0;

 int       selX=-1, selY=-1;

 TMoves       *moves=new TMoves(0, 0, 0, 0, 0);

{

 int        gm, err, gd = DETECT;

initgraph(&gd, &gm, "");

 err=graphresult();

 if (err!=grOk) {

  printf("%s\n", grapherrormsg(err));

  return;

 }

}

 

setcolor(LIGHTRED);

outtextxy(120, 450, "RED Queen - under attack");

setcolor(LIGHTGREEN);

outtextxy(375, 450, "GREEN Queen - free");

field.Paint();

 for (i=0; i<8; i++) Queens[i].SetCoords(i, i);

 for (i=0; i<8; i++) {       

 queens[i].Recheck();

 queens[i].Paint(faSet);

}

SetSelection(&field, x, y);

do {

  ch=getch();

  if (!ch) {              

    ch=getch();

switch (ch) {       

      case kbUpKey    : if (y<7) dy= 1; break;

      case kbDownKey  : if (y>0) dy=-1; break;

      case kbLeftKey  : if (x>0) dx=-1; break;

      case kbRightKey : if (x<7) dx= 1; break;

}

    if (!dx || !dy) {

    if (selX!=x || selY!=y) ClearSelection(&field, x, y);

      x+=dx; y+=dy;

      dx=0; dy=0;

   if (selX==x && selY==y)

     continue;

   SetSelection(&field, x, y);

}

    continue;

}

  if (ch==kbEnter) {

         if (selX==-1 && selY==-1) {

              if (field.queens[x][y]) { selX=x; selY=y; }

      continue;

}

    if (selX==x && selY==y) {

    selX=selY=-1;

continue;

}

    if (field.queens[x][y]) continue;

    r=field.figures[selX][selY];

if (moves)

   if (moves->prev) {

 TMoves *r,*p;

 r=p=moves->prev;

 while (p->prev) {

  p=p->prev;

  delete r;

r=p;

}

        delete p;

}  

      moves=new TMoves(r->x, r->y, x, y, moves);

      r->MoveTo(x, y);

      for (i=0; i<8; i++) queens[i].Recheck();

     ClearSelection(&field, selX, selY);

     selX=selY=-1;

     continue;

}  

  switch (ch) {

    case 'z' : if (!moves->prev) break;

 moves=moves->prev;

 r=field.queens[moves->fx][moves->fy];

 if (!r) break;

 r->MoveTo(moves->tx, moves->ty);

                             if (selX>-1 && selY>-1) {

   ClearSelection(&field, selX, selY);

   selX=selY=-1;

 }

 break;

    case 'x' : if (!moves->next) break;

 r=field.queens[moves->tx][moves->ty];

               if (!r) break;  

 r->MoveTo(moves->fx, moves->fy);

 if (selX>-1 && selY>-1) {

   ClearSelection(&field, selX, selY);

   selX=selY=-1;

 }

 moves=moves->next;

 break;

  }

} while (ch!=kbEscape);

{

  TMoves *r;

  while (moves->prev) moves=moves->prev;

  r=moves;

  while (moves->next) {

 moves=moves->next;

 delete r;

 r=moves;

  }

  delete moves;

}

closegraph(); // завершаем графику

}

 

Текст программы-драйвера.

#include "moves.cpp"       

#include "field.cpp"       

#include "queens.cpp"       

#include <conio.h>   

#include <stdio.h>   

#include <graphics.h>  

void main()       

{       

TField       field(119, 39);

 

TQueen     queens[3] = {TQueen(&queens[0], &field, 3),    

                                         TQueen(&queens[0], &field, 3),

             TQueen(&queens[0], &field, 3)};

{

 int        gm, err, gd = DETECT;

 initgraph(&gd, &gm, "");

 err=graphresult();

 if (err!=grOk) {

  printf("%s\n", grapherrormsg(err));

  return;

 }

}

field.Paint();

figures[0].SetCoords(2, 3);

figures[1].SetCoords(6, 7);

figures[2].SetCoords(4, 3);

for (int i=0; i<3; i++) {       

  figures[i].Recheck();

figures[i].Paint(faSet);

}

getch();

// вывод результатов

printf("Ожидаемые результаты:\n");

printf("  - для фигуры 1 : 2 атаки\n");

printf("  - для фигуры 2 : 1 атаки\n");

printf("  - для фигуры 3 : 1 атаки\n\n");

printf("Результаты работы программы:\n");

printf("  - для фигуры 1 : %d атаки\n", queens[0].blows);

printf("  - для фигуры 2 : %d атаки\n", queens[1].blows);

printf("  - для фигуры 3 : %d атаки\n", queens[2].blows);

getch(); // пауза

closegraph(); // завершим графику

}

                                        Список литературы

  1.  Методические указания к курсовой работе по дисциплине технология программирования. Составители: И.Р. Дубов, В.А. Барков, А.Г. Долинин.  Владимир:1999г
  2.  Липаев В.В. Проектирование программных средств. М.:Высш.шк.,1990.-303с.


 

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

45708. Типология и классификация современных СМИ 30.5 KB
  Типология и классификация современных СМИ. От того каким аудиторным признакам будет уделяться данным СМИ наибольшее внимание зависит: 1 проблемнотематическая направленность обращение к определенным пластам информации; при этом СМИ может быть по этому признаку универсальным политематическим и монотематическим. А от того в каком свете будут освещаться проблемы и темы зависит 2 социальная позиция СМИ его политическая экономическая и др. 3 линия поведения относительно других СМИ представляющих другие социальные позиции отстаивающие...
45709. Основные тенденции развития СМИ на Западе после Второй мировой войны (Англия) 50.5 KB
  1870 -– соглашение Вольф Гавас и Рейтер о разделе мирового инф пространства 6080 – новые типы период изданий много вечерн г “Pll Mll Gzette†“London Dily Mercury†“evening Mercury†“Evening news†“Strâ€. Особенно преуспели в этом идеологи английской желтой прессы братья Хармсворты начавшие свою деятельность в 1888 году с издания желтых журналов а затем газет Evening News 1894 Dily Mil 1896 для молодых клерков снизили цену увеличил тираж. Газетн кампании рубрики для женщин и Dily Mirror1903 –...
45710. Международная информация 36.5 KB
  Тема раскрывается в трех измерениях: во-первых освещение в России любыми СМИ любым информационным источником и в любом жанре происходящих за рубежом текущих событий и процессов; внешнеполитических и внешнеэкономических акций России; российского присутствия за рубежом – политического экономического культурного гуманитарного информационного спортивного военного. во-вторых отражение зарубежными СМИ образа России ее внутренней и внешней политики; в-третьих целенаправленные действия российской стороны в зарубежных странах для...
45711. Зарубежная журналистика и экономика: новость как товар, аудитория как капитал 28 KB
  Поскольку СМИ включены в действующую финансовоэкономическую систему той или иной страны они заинтересованы в стабильности и развитии этой системы что часто проявляется в содержании публикуемых или транслируемых материалов. В ряде случаев СМИ выступают как группы экономических интересов а во взаимодействии с властными структурами – как группы влияния лобби. В последние годы заметно меняется экономическая структура СМИ. Во многих странах государство субсидирует СМИ как прямо так и косвенно – предоставлением различных льгот грантов...
45712. Зарубежные теории и концепции журналистики 37.5 KB
  Известные американские теоретики и историки печати профессоры Иллинойского университета Фред Сиберт Теодор Петерсон и руководитель проекта профессор Стэнфордского университета Уилбур Шрамм подготовили и издали книгу Четыре теории прессы которая долгое время рассматривалась за рубежом как классическая работа. В каждой из четырех анализируемых авторами теорий проблема ответственности прессы находила свое решение в соответствии с теми социальными и политическими структурами в рамках которых функционировали СМИ. Теория свободы печати...
45713. Методика социологических исследований журналистики 29 KB
  Методика социологических исследований журналистики. Социология журналистики – это дисциплина изучающая 1 журналистику как социнститут ее место и значение в системе общ отношений и в соц структуре; 2 журку как средство общения и взаимодействия м у людьми изучение личности журналиста приемов и механизмов манипуляций пропаганды воздействия СМИ на личность. Подходы к изучению журки: 1журка как объект изучения изучают не журты а со стороны и 2Журка как субъект исследования журты являются исследователями Методы сбора информации.
45714. Правовое регулирование журналистской деятельности 36.5 KB
  Идеологический плюрализм в России; Статья 14 – религиозный плюрализм никакая религия не может быть признана государственной или официальной; Статья 15 приоритет международного над национальным правом; Статья 23 – право на неприкосновенность частной жизни личную и семейную тайну защиту своей чести и доброго имени. Частная жизнь – особая сфера бытовых и интимных отношений человека не подлежащая контролю со стороны государства и общества; Статья 41 – ответственность...
45715. Политическая журналистика в современной России 36.5 KB
  Вскоре информационные империи обоих олигархов пополнились общефедеральными телеканалами: бывшим Первым каналом после реформирования получившим название ОРТ и вновь созданным на четвертой кнопке НТВ. Передовые информационные технологии позаимствованные за рубежом и успешно адаптированные к отечественным условиям энтузиазм и талант журналистов помноженные на деньги владельца обусловили тот факт что последующие несколько лет вошли в историю российской журналистики как эпоха первого НТВ. Неверно однако было бы рассматривать первое...
45716. Этическое регулирование журналистской деятельности 46 KB
  Существует 2 основных критерия выделения профессиональной этики: 1 применение ПЭ в условиях конкретной профессии на основе общих норм нравственности 2 ПЭ существует лишь в тех профессиях которые непосредственно воздействуют на человека. Положения профессиональной морали зафиксированы в ряде кодексов. В любой стране есть свой кодекс профессиональной этики журналиста но все они так или иначе повторяют одни и те же положения. В СССР Союз журналистов появился в 1957году в 1988 – создан Совет по профессиональной этике...