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

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

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

 
 Ответить  Открыть новую тему 
> Цикл
cxt
сообщение 10.04.2005 18:13
Сообщение #1


Новичок
*

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

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


На первую клетку он положил 1 зерно на 2 -2 на 3 -4 и т.д. на каждую следующую в 2 раза больше...

Не подскажете как это записать

при помощи sqr(x) ?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 10.04.2005 18:30
Сообщение #2


Гость






Записать-то просто, вопрос - поместится ли значение в переменную? Ответ - нет, не поместится ;)

Кстати, это НЕ при помощи Sqr, т.к. Sqr - это квадрат числа, но никак не удвоенное число...
 К началу страницы 
+ Ответить 
VelarThind
сообщение 10.04.2005 21:15
Сообщение #3


Гость






НУ я думаю в задаче есть какой-то предел. А писать можно так -

Код
a := 1;
For i := 1 to {например} 100 do
 a:=a*2;


Можно и Repeat-Until или While-do

Сообщение отредактировано: VelarThind - 10.04.2005 21:23
 К началу страницы 
+ Ответить 
volvo
сообщение 10.04.2005 21:21
Сообщение #4


Гость






VelarThind,
типы проставь. Какого типа у тебя A?
 К началу страницы 
+ Ответить 
cxt
сообщение 11.04.2005 18:02
Сообщение #5


Новичок
*

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

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


Предел есть нужно узнать сколько зерен нужно чтобы покрыть шахматную доску.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 11.04.2005 18:13
Сообщение #6


Гость






cxt, тебе сюда: FAQ: Длинночисленная арифметика, потому что тебе нужно знать с точностью до единиц, а пример приведенный VelarThind-ом просто не будет работать корректно при таких порядках.

Если же использовать real то можешь забыть о точности до единиц. Результат будет приблизительным. Выбирай.
 К началу страницы 
+ Ответить 
cxt
сообщение 12.04.2005 20:23
Сообщение #7


Новичок
*

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

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


Код

program xxx;
uses crt;
var
a,i:integer;
begin clrscr;
writeln('Введите число (на доске 64 клетки)');
read(i);
for i:=1 to i do
a:=(a+2);
a:=a-2;
writeln('a,' зерен потребуются для заполнения доски');
end.


Помогите сделать чтобы когда вводишь 1 выводилось тоже 1 ,а не 0

пытался зделать через if но не получилось

Код

if i=1 then
begin
writeln('i,' зерен потребуются для заполнения доски');
end;
else
writeln('a,' зерен потребуются для заполнения доски');
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 12.04.2005 20:44
Сообщение #8


Гость






Читай, что я писал раньше:
Цитата(volvo @ 10.04.05 18:30)
Записать-то просто, вопрос - поместится ли значение в переменную? Ответ - нет, не поместится  ;)


Цитата(volvo @ 11.04.05 18:13)
cxt, тебе сюда: FAQ: Длинночисленная арифметика, потому что тебе нужно знать с точностью до единиц, а пример приведенный VelarThind-ом просто не будет работать корректно при таких порядках.


Решил проверить? Проверил? Убедился? Я же говорил, что смотреть надо в сторону длинночисленной арифметики... Ибо даже LongInt (я уже не говорю про Integer) может хранить значение до 2 в степени 32, а тебе нужно до 2 в степени 64 (по числу клеток на доске) Так что работай с длинными числами...

Кстати, вот это:
Код
{ а кто тебе разрешил использовать I
и как переменную цикла и как конечное значение? }
for i:=1 to i do
 a:=(a+2);
a:=a-2;
вообще лишено всякого смысла. Тебе нужно считать, сколько зерен потребуется чтобы закрыть всю доску, то есть нужно в любом случае пройти по всем 64-м клеткам, а не вводить число I... И умножать на 2, а не прибавлять двойку...
 К началу страницы 
+ Ответить 

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

 



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