HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 31.03.2009, 20:53
wildshaman
Постоянный
Регистрация: 16.04.2008
Сообщений: 889
С нами: 9510146

Репутация: 1550


По умолчанию

2.
Код:
s:=0;
for i:=20 to 40
begin
cube:=sqr(i)*i;
s:=s+cube;
end;
 
Ответить с цитированием

  #2  
Старый 01.04.2009, 02:54
Ajax5
Новичок
Регистрация: 22.03.2009
Сообщений: 3
С нами: 9021264

Репутация: 0
По умолчанию

Здравствуйте ребята, мне нужна помощь по лабораторной работе

Реализовать игру «Гонки» на Pascal ABC. На экране изображается замкнутый гоночный трек, рисуемый при помощи двух прямоугольников - один внутри другого
Высота и ширина внешнего прямоугольника генерируются программой как случайные числа при помощи функции random. Диапазон возможной ширины и высоты взять, например, в пределах от 200 до 400 пикселей. Смещение левой верхней точки внутреннего прямоугольника относительно левой верхней точки внешнего прямоугольника тоже задать случайными числами, например, в диапазоне от 10 до 30 пикселей. Размеры внутреннего прямоугольника опять же задать как случайные числа, но так, чтобы границы внутреннего прямоугольника не вылезали за границы внешнего, и чтобы справа и снизу между прямоугольниками тоже оставалось некоторое пространство примерно от 10 до 30 пикселей.
Область между прямоугольниками считается треком, пригодным для движения гоночных машин. Область внутри внутреннего прямоугольника и снаружи внешнего считается обочиной, непригодной для движения машин.
Изначально машина игрока устанавливается в некоторую случайную точку на треке и имеет нулевую скорость. Цель игрока - проехать по треку за минимальное количество ходов. На каждом ходе игрок может изменять скорость машины по оси X и скорость по оси Y не более чем на единицу (скорость, равная единице, соответствует перемещению на один пиксель за ход). То есть на каждом ходу игрок может выбрать один из следующих вариантов действий:
1. Увеличить скорость по оси X на единицу и увеличить скорость по оси Y на единицу.
2. Увеличить скорость по оси X на единицу и оставить скорость по оси Y неизменной.
3. Увеличить скорость по оси X на единицу и уменьшить скорость по оси Y на единицу.
4. Оставить скорость по оси X неизменной и увеличить скорость по оси Y на единицу.
5. Оставить скорость по оси X неизменной и оставить скорость по оси Y неизменной.
6. Оставить скорость по оси X неизменной и уменьшить скорость по оси Y на единицу.
7. Уменьшить скорость по оси X на единицу и увеличить скорость по оси Y на единицу.
8. Уменьшить скорость по оси X на единицу и оставить скорость по оси Y неизменной.
9. Уменьшить скорость по оси X на единицу и уменьшить скорость по оси Y на единицу.
Сразу после выбора игроком действия машина сдвигается на экране в соответствии с той скоростью, которую она получает. Если после этого машина остаётся на трассе (или на границе между трассой и обочиной), то у неё остаётся полученная скорость, и игрок переходит к следующему ходу (то есть ещё раз выбирает один из девяти вариантов действий). Если же машина после хода оказывается за границей трека, то её скорость сразу становится равно нулю по обеим осям, и игрок опять же переходит к следующему ходу.

Для управления машиной в программе должен быть интерфейс (сделать/нарисовать клавиши: вверх, вниз, влево, вправо, и кнопка: ОК)

Четыре кнопки позволяют уменьшать/увеличивать скорость по осям X или Y, а кнопка OK - принять выбранную скорость и сделать ход. В центре располагается стрелка, которая показывает направление и величину текущей скорости машины.

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

Последний раз редактировалось Ajax5; 01.04.2009 в 02:56..
 
Ответить с цитированием

Помогите с прогой на С++
  #3  
Старый 01.04.2009, 15:26
WeReWoLf777
Новичок
Регистрация: 23.03.2009
Сообщений: 11
С нами: 9018802

Репутация: 0
Exclamation Помогите с прогой на С++

На шахматной доске надо разместить 8 ферзей так чтоб их пути не пересекались.
с комментариями плиз.
 
Ответить с цитированием

  #4  
Старый 01.04.2009, 17:00
KaZ@NoVa
Постоянный
Регистрация: 05.07.2008
Сообщений: 555
С нами: 9394886

Репутация: 1467


По умолчанию

Цитата:
Сообщение от WeReWoLf777  
На шахматной доске надо разместить 8 ферзей так чтоб их пути не пересекались.
с комментариями плиз.
эт на курсовую тянет) у меня в восьмом классе такая тема на паскале была.
что отдаётся программе и что она возвращает?
координаты всех ферзей?
 
Ответить с цитированием

  #5  
Старый 01.04.2009, 17:55
jawbreaker
Участник форума
Регистрация: 07.07.2008
Сообщений: 161
С нами: 9391926

Репутация: 234
По умолчанию

Цитата:
Сообщение от WeReWoLf777  
На шахматной доске надо разместить 8 ферзей так чтоб их пути не пересекались.
с комментариями плиз.
Читать
+ исходник на С:
Код:
int col[8], up_free[15], dn_free[15], coln[8] ;

main( )
{            
    int i ;

	  for ( i = 0 ; i <= 7 ; i++ )
    col[i] = 1 ;
     for ( i = 0 ; i <= 14 ; i++ )
    up_free[i] = dn_free[i] = 1 ;
    clrscr( ) ;
    addqueen( ) ;  
}            

 addqueen( )            
{            
    int i, c, r ;            
    static int comb, row = -1 ;
	  
    row++ ;

     /* Проверяем колонки */            
    for ( i = 0 ; i <= 7 ; i++ )            
    {            
        /* если клетка не находится под ударом */            
        if ( col[i] && up_free[i+row] && dn_free[row-i+7])
        {            
			  /* запоминаем, что в строке находится ферзь */
	          coln[row] = i ;

	           /* маркируем колонку и диагональ */ 
	          col[i] = 0 ;             
	          up_free[i+row] = 0 ;             
	          dn_free[row-i+7] = 0 ;

	           /* если заполнены все строки */            
	          if ( row >= 7 )            
	          {            
		          comb++ ;            
		          printf ( "\n\n\ncombination no. %d", comb ) ;
		          for ( r = 0 ; r <= 7 ; r++ )
		          {            
			          printf ( "\n" ) ;            
			          for ( c = 0 ; c <= 7 ; c++ )
			          {            
				          if ( c == coln[r] )            
					          printf ( " Q " ) ;
				          else            
					          printf ( " . " ) ;
			          }            
	        	  }            
	          }            
		      else            
  			  addqueen( ) ;

	           /* снимаем пометку с колонки и диагонали */            
		      col[ coln[row] ] = 1 ;            
  		  up_free[ row + coln[row] ] = 1 ;            
	          dn_free[ row - coln[ row ] + 7 ] = 1 ;            
	      }            
	  }            
    row-- ; /* уменьшаем счетчик строк, пробуем следующую комбинацию */
}

Последний раз редактировалось jawbreaker; 01.04.2009 в 17:59..
 
Ответить с цитированием

  #6  
Старый 01.04.2009, 18:05
KaZ@NoVa
Постоянный
Регистрация: 05.07.2008
Сообщений: 555
С нами: 9394886

Репутация: 1467


По умолчанию

Код HTML:
#include<stdio.h>

int col[8];
int up_free[15];
int dn_free[15];
int coln[8];

void addqueen(){
 int i,c,r;
 static int comb, row = -1;
 row++;
 //Проверяем все колонки
 for (i = 0; i <= 7; i++){
  //Если колонка не находится под ударом
  if ( col[i] && up_free[i+row] && dn_free[row-i+7]){
   //Запоминаем что в строке есть ферзь
   coln[row] = i;
   //Маркируем колонку и обе диагонали
   col[i] = 0;
   up_free[i+row] = 0;
   dn_free[row-i+7] = 0;
   //Если все строки мы уже запомнили, то выводим комбинацию
   if (row >= 7){
    comb++;
    printf("\n\nCombination number - %d\n",comb);
    for (r = 0; r <= 7; r++){
     printf("\n");
     for (c = 0; c <=7; c++){
      if (c == coln[r]){
       printf("@");
      }
      else{
       printf("-");
      }
     }
    }
   }
   else{
    addqueen();
   }
   //Снимаем метку с колонки и диагонали
   col[coln[row]] = 1;
   up_free[row+coln[row]] = 1;
   dn_free[row-coln[row]+7] = 1;
  }
 }
 //Переходим к следующему варианту
 row--;
}

int main(){
 int i;
 for (i = 0; i <= 7; i++){
  col[i] = 1;
 }
 for (i = 0; i<= 14; i++){
  up_free[i] = dn_free[i] = 1;
 }
 addqueen();
 return 0;
}
прогу писал давно - так что щас не думал, просто перевёл с одного языка на другой.
исходник. нужно только скомпилировать и запустить)
 
Ответить с цитированием

  #7  
Старый 01.04.2009, 17:06
KaZ@NoVa
Постоянный
Регистрация: 05.07.2008
Сообщений: 555
С нами: 9394886

Репутация: 1467


По умолчанию

ну мой вариант выводил все варианты таких расстановок.
вот. я писал на паскале и было это 2 года назад=)
но щас вспомню и быстренько сделаю на cpp
К вечеру нормально будет?)
 
Ответить с цитированием

  #8  
Старый 01.04.2009, 17:15
WeReWoLf777
Новичок
Регистрация: 23.03.2009
Сообщений: 11
С нами: 9018802

Репутация: 0
По умолчанию

да норм спс
 
Ответить с цитированием

  #9  
Старый 01.04.2009, 17:18
WeReWoLf777
Новичок
Регистрация: 23.03.2009
Сообщений: 11
С нами: 9018802

Репутация: 0
По умолчанию

прога сама должна расположить 8 ферзей на шахматной доске.
 
Ответить с цитированием

  #10  
Старый 01.04.2009, 18:10
Chaak
Познавший АНТИЧАТ
Регистрация: 01.06.2008
Сообщений: 1,047
С нами: 9443906

Репутация: 3313


По умолчанию

KaZ@NoVa, как тебе не стыдно?
http://www.codenet.ru/progr/alg/ferzi.php
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Американским студентам запретили пользоваться Skype KPOT_f!nd Мировые новости. Обсуждения. 1 28.09.2006 03:47
Любителям квестов сюда!! FoX's Болталка 10 25.01.2005 20:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.