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с.


 

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

23753. Задачи для самопроверки (подготовка к контрольной работе) 61 KB
  3 Вычислительные ошибки. – Назовите номера заданий в которых вы допустили ошибки. – Какие ошибки допущены Разговор проводится по каждому заданию в котором допущена ошибка. Учитель последовательно выясняет у кого из детей на какой алгоритм были допущены ошибки и эти алгоритмы проговариваются во внешней речи.
23754. Набольший общий делитель 34.5 KB
  Основные цели: вывести алгоритм нахождения НОД чисел на основе их разложения на простые множители сформировать способность к использованию выведенного алгоритма для решения задач; повторить и закрепить решение неравенств задач на одновременное движение действия со смешанными числами. – Что даёт нам умение раскладывать числа на простые множители Ещё один метод нахождения делителей числа. – А что зная делители числа мы находили Общие делители НОД. – Как называются все числа кратные 2 Четные числа.
23755. Набольший общий делитель 35.5 KB
  Основные цели: тренировать способность к практическому использованию алгоритма нахождения НОД на основе разложения чисел на простые множители; исследовать частные случаи нахождения НОД когда НОД а b = 1 НОД а b = а; сформировать понятие взаимно простых чисел; повторить и закрепить понятие смежных углов решение задач на одновременное движение примеров на порядок действий. – Здравствуйте ребята – Над какой темой мы с вами работали Нахождение НОД чисел методом разложения на простые множители. – Сегодня мы продолжим исследовать...
23756. Наибольший общий делитель 69.5 KB
  Основная цель: тренировать способность к нахождению НОД на основе разложения чисел на простые множители способность к рефлексии собственной деятельности; повторить и закрепить решение уравнений решение задач методом уравнений графическое изображение множеств с помощью диаграммы Венна. – Какой темой мы занимались на предыдущих уроках Нахождение НОД чисел методом разложения чисел на простые множители. – Чему равен НОД взаимно простых чисел НОД взаимно простых чисел равен 1. – Найдите: а НОД а b; б НОД b с; в НОД а с.
23757. Открытие нового знания 49.5 KB
  – Можно ли утверждать что числа a b и c кратны числу 14 a = b = c = Числа a и b кратны числу 14 т. в разложении этих чисел есть множители числа 14 а число с – нет т. в нём не содержится разложения числа 14. – Найдите частное от деления числа a на число 14 числа b на число 14.
23758. Открытие нового знания 38 KB
  – Здравствуйте ребята – Какая основная задача стояла перед нами на прошлых уроках Мы вывели новый способ нахождения НОК используя разложение чисел на простые множители. – Сегодня на уроке мы продолжим работать над нахождением НОК чисел и рассмотрим нахождение НОК разных чисел. – Найдите НОК 15 24: а составляя множества К 15 и К 24; б перебирая кратные 24; в с помощью разложения чисел 15 и 24 на простые множители.
23759. Наименьшее общее кратное 73 KB
  Основная цель: тренировать способность к нахождению НОК на основе разложения чисел на простые множители способность к рефлексии собственной деятельности; повторить и закрепить распределительное свойство умножения правило деления произведения на число действия с многозначными числами формулы объема и площади поверхности куба. – Чему мы научились на предыдущих уроках Мы учились находить НОД и НОК чисел разными способами. – Сегодня вы будете проверять на сколько хорошо вы усвоили метод нахождения НОД и НОК используя разложения чисел на...
23760. Признак делимости на 3 и на 9 48 KB
  Основные цели:– тренировать способность к доказательству общих утверждений на примере признаков делимости на 3 и на 9; повторить и закрепить изученные свойства и признаки делимости решение текстовых задач решение примеров на порядок действий построение формул зависимости между величинами. – Какие признаки делимости мы изучили Признаки делимости на 2 на 5 на 10 на 4 на 8 на 25. – А зачем нам нужны признаки делимости Что бы быстрее определять делится ли число на данное или нет.
23761. Признак делимости на 3 и на 9 57.5 KB
  – А зачем нам нужны признаки делимости Что бы быстрее определять делится ли число на данное или нет. Затруднения могут быть при выполнении задания тех случаях где множитель не делится ни на 3 ни на 9 или делится только на 3. 54 делится на 3 и третье т. 15 делится на 3.