IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
> Помогите написать небольшую програмку, Шахматная Доска
Acer
сообщение 18.05.2007 11:35
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской

Репутация: -  0  +


Буду очень благодарен, если вы хоть как-то мне поможете с написанием данной программы:
задача:"Шахматная Доска"
Целочисленный массив K размером m x n заполнить нулями и единицами, расположив их в шахматном порядке.
(смысл: при запуске проги в окне должны появиться строчки с чередованием единиц и нулей
10101010
01010101
и т.д.
причем, количество строк и столбцов все время меняется и ограничено десятью).


Заранее всем благодарен!

Сообщение отредактировано: Acer - 18.05.2007 13:27
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 18.05.2007 11:37
Сообщение #2


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Поиском не пробовал воспользоваться ? Задача решалась ...


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 18.05.2007 11:39
Сообщение #3


Гость






Так что-ли?
var
i, j, n: integer;
start: integer;

begin
write('n = '); readln(n);
for i := 1 to n do begin
start := byte(odd(i));
for j := 1 to n do begin
write(start:2); start := 1 - start;
end;
writeln;
end;
end.



Добавлено через 1 мин.
P.S.
странно, вообще-то шахматная доска по-моему квадратная... Пойду проверю...
 К началу страницы 
+ Ответить 
Acer
сообщение 18.05.2007 11:48
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской

Репутация: -  0  +


klem4, спасибо, но я не совсем понял то, что в программе

volvo,Спасибо.
да, доска квадратная, но у нас не n x n, а m x n.
Тоесть главное, чтобы в шахматном порядке было.
и еще, как объяснил учитель и m и n должны быть в программе и задаваться random-ом от 1 до 10,
т.е может быть одна строчка чисел, две и т.д, то же самое и со столбцами.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 18.05.2007 12:29
Сообщение #5


Гость






Тогда вот так:
var
i, j, n, m: integer;
start: integer;

begin
randomize;
m := random(10) + 1;
n := random(10) + 1;
for i := 1 to m do begin
start := byte(odd(i));
for j := 1 to n do begin
write(start:2); start := 1 - start;
end;
writeln;
end;
end.

 К началу страницы 
+ Ответить 
Acer
сообщение 18.05.2007 12:32
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской

Репутация: -  0  +


Спасибо!
З.Ы. только что такое odd?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 18.05.2007 12:42
Сообщение #7


Гость






Функция такая... Вернет True, если ее аргумент - нечетный...
 К началу страницы 
+ Ответить 
Acer
сообщение 18.05.2007 12:43
Сообщение #8


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской

Репутация: -  0  +


Цитата
Функция такая... Вернет True, если ее аргумент - нечетный...

Хм....в смысле true?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 18.05.2007 12:47
Сообщение #9


Гость






Чего, про тип Boolean никогда не слышал? Допустим, ты сравниваешь 2 числа:
If (a > b) then ...


Вот результат вычисления того, что в скобках - это какого типа? Логического, правда? Истина или Ложь, True или False в записи на Паскале...
 К началу страницы 
+ Ответить 
Acer
сообщение 18.05.2007 12:51
Сообщение #10


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской

Репутация: -  0  +


Ааа, понял.

Цитата
Чего, про тип Boolean никогда не слышал?

Сразу не врубился.

Огромное Спасибо, Владимир.
Респект!
Не ожидал, что так быстро поможете.
Еще раз Спасибо!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Acer
сообщение 21.05.2007 19:28
Сообщение #11


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской

Репутация: -  0  +


Владимир, не могли бы вы мне еще помочь.
Можно ли сделать эту программу без odd и start, как можно более примитивно.
Заранее Спасибо.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 21.05.2007 20:02
Сообщение #12


Гость






var
i, j, n, m: integer;

begin
randomize;
m := random(10) + 1;
n := random(10) + 1;
for i := 1 to m do begin

for j := 1 to n do
write(((i + j + 1) mod 2):2);

writeln;
end;
end.

Главное - чтобы потом тебе не понадобилось сделать программу без циклов и Randomize...
 К началу страницы 
+ Ответить 
Acer
сообщение 21.05.2007 20:24
Сообщение #13


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской

Репутация: -  0  +


Спасиб.
А без циклов сложнее и длиннее будет?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Ozzя
сообщение 22.05.2007 10:06
Сообщение #14


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


Проще:
a[1,1]:=1;
a[1,2]:=0;
...
a[1,n]:=0;
a[2,1]:=0;
...
a[2,1]:=1;
...
И так много раз, в зависимости от размера массива: Кол-во операторов = m*n






Добавлено через 2 мин.
Цитата(volvo @ 21.05.2007 21:02) *

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

lol.gif rolleyes.gif lol.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Sto
сообщение 22.05.2007 10:16
Сообщение #15


Пионер
**

Группа: Пользователи
Сообщений: 70
Пол: Мужской
Реальное имя: Илья

Репутация: -  2  +


Цитата(Ozzя @ 22.05.2007 10:06) *

Проще:
a[1,1]:=1;
a[1,2]:=0;
...
a[1,n]:=0;
a[2,1]:=0;
...
a[2,1]:=1;
...
И так много раз, в зависимости от размера массива: Кол-во операторов = m*n
Добавлено через 2 мин.

lol.gif rolleyes.gif lol.gif

m и n задаются Randomize
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Ozzя
сообщение 22.05.2007 10:21
Сообщение #16


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


Sto
Я не об этом. no1.gif
Я об этом -

Цитата
Volvo
Главное - чтобы потом тебе не понадобилось сделать программу без циклов


Цитата
Acer
А без циклов сложнее и длиннее будет?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Sto
сообщение 22.05.2007 10:48
Сообщение #17


Пионер
**

Группа: Пользователи
Сообщений: 70
Пол: Мужской
Реальное имя: Илья

Репутация: -  2  +


Цитата(Ozzя @ 22.05.2007 10:21) *

Sto
Я не об этом. no1.gif
Я об этом -

А, ну тогда да!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Acer
сообщение 22.05.2007 16:32
Сообщение #18


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской

Репутация: -  0  +


Подскажите, что такое mod?
write(((i + j + 1) mod 2):2);
Заранее Спасибо.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Sto
сообщение 22.05.2007 16:43
Сообщение #19


Пионер
**

Группа: Пользователи
Сообщений: 70
Пол: Мужской
Реальное имя: Илья

Репутация: -  2  +


Цитата(Acer @ 22.05.2007 16:32) *

Подскажите, что такое mod?
write(((i + j + 1) mod 2):2);
Заранее Спасибо.

Mod - вычисляет остаток, полученый при выполнении целочисленного деления.
Например:
10 mod 5 = 0; Потому что 10/5 = 2, нет остатка;
11 mod 5 = 1; Потому что 11/5 = 2.2, а ближайшее целое число которое делится на 5 без остатка, это 10 в
результате 11-10=1;
25 mod 10 = 5; Потому что 25/10 = 2.5, а ближайшее целое число которое делится на 10 без остатка, это 20, в
результате 25-20=5;

Сообщение отредактировано: Sto - 22.05.2007 16:44
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Acer
сообщение 22.05.2007 17:45
Сообщение #20


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской

Репутация: -  0  +


Спасибо за объяснение. smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

2 страниц V  1 2 >
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 13.06.2024 1:16
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"