Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> нечётные числа 
:(
    Опции темы
Warfire
Дата 7.12.2009, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 18.11.2009

Репутация: нет
Всего: нет



Вводишь число и тебе высвечиваются все начётные числа в указанное число столбцов
Например:
вводишь 5 и:
1 3 5 7 9
11 13 15 17 19 и так до ста.
Помогите плиз
 smile 
PM MAIL ICQ   Вверх
NFL
Дата 7.12.2009, 19:27 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



Warfire, на паскалюшке?
проверяй остаток от деления на 2, что там определять то... 

зы: стукни в аську 386439383 если что...

Добавлено через 9 минут и 55 секунд
Код

program hz;
  uses crt;
  var inp, k, i: integer;
begin
  clrscr;
  write ('‚ўҐ¤ЁвҐ Є®«. бв®«Ўж®ў (1-10): ');
  read (inp);
  k:=0;
  for i:=1 to 100 do
  begin
    if (i mod 2=1) then write (i:4);
    inc (k);
    if (k=inp*2) then
      begin
        writeln;
        k:=0;
      end;
  end;
  readln;
end.


PM MAIL   Вверх
~FoX~
Дата 7.12.2009, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 1
Всего: 68



odd


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
kemiisto
Дата 7.12.2009, 20:53 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: нет
Всего: 160



Код

program test;

var
  RowCount, OddNumber, AlreadyPrinted: integer;

begin
  write('Введите число столбцов: ');
  readln(RowCount);
  
  OddNumber := 1;
  AlreadyPrinted := 0;
  while OddNumber < 100 do
  begin
    write(OddNumber:3);
    inc(OddNumber, 2);
    inc(AlreadyPrinted);
    if AlreadyPrinted = RowCount then
    begin
      AlreadyPrinted := 0;
      writeln;
    end;
  end;
end.


Это сообщение отредактировал(а) kemiisto - 7.12.2009, 21:30


--------------------
PM MAIL WWW GTalk Jabber   Вверх
NFL
Дата 7.12.2009, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



А в чем разница, while или for? smile 
(для данной задачи, разумеется)

kemiisto, у нас, по сути, одинаковые тексты, только переменные разные smile 
PM MAIL   Вверх
kemiisto
Дата 7.12.2009, 21:39 (ссылка)   | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: нет
Всего: 160



Цитата(NFL @  7.12.2009,  22:22 Найти цитируемый пост)
kemiisto, у нас, по сути, одинаковые тексты, только переменные разные

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

Цитата(NFL @  7.12.2009,  22:22 Найти цитируемый пост)
А в чем разница, while или for?

for можно считать синтаксическим сахаром. И отнюдь не самым удачным. Вирт убирал цикл со счётчиком из Oberon. В Oberon-2 вернул под давлением общественности. smile Но мне всё более близка идея, что for - костыль. smile 

Цитата(NFL @  7.12.2009,  22:22 Найти цитируемый пост)
(для данной задачи, разумеется)

В моей реализации (когда начинаем с 1 и прибавляем 2) while напрашивается очевидным образом.


--------------------
PM MAIL WWW GTalk Jabber   Вверх
NFL
Дата 7.12.2009, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



kemiisto, бессмысленные, говоришь, переменные?  smile 
возможно, ибо писал просто дабы показать алгоритм smile 

в быстродействии, возможно, while даже чуть выиграет smile 
ибо в моем случае 100 повторов, а с while - 50, если я не ошибаюсь)))

но повторюсь, написал так, как написал бы в универе с целью "а чтоб сдать, чтоб они от меня от**ались побыстрее" smile 
PM MAIL   Вверх
kemiisto
Дата 7.12.2009, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: нет
Всего: 160



Цитата(NFL @  7.12.2009,  23:31 Найти цитируемый пост)
kemiisto, бессмысленные, говоришь, переменные?

Не надо мне приписывать того, чего я не говорил.
Я сказал, что
Цитата(kemiisto @  7.12.2009,  22:39 Найти цитируемый пост)
имена переменных бессмысленны

То есть имя не отражает предназначение переменной. Что есть не очень хорошо.

Цитата(NFL @  7.12.2009,  23:31 Найти цитируемый пост)
но повторюсь, написал так, как написал бы в универе с целью "а чтоб сдать, чтоб они от меня от**ались побыстрее"

Я так и понял. Именно это мне и не понравилось.


--------------------
PM MAIL WWW GTalk Jabber   Вверх
volvo877
Дата 8.12.2009, 12:44 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Цитата(kemiisto @  7.12.2009,  20:39 Найти цитируемый пост)
for можно считать синтаксическим сахаром. И отнюдь не самым удачным. Вирт убирал цикл со счётчиком из Oberon. В Oberon-2 вернул под давлением общественности.
Ну, и? Кое-кто и множества с диапазонами убирает из языка (ну, ты в курсе, о чем я?), что теперь, отказаться от из использования даже там, где они есть? Вообще-то здесь раздел Паскаль, а не Оберон, если средство есть - им никто не запрещал пользоваться.
Цитата(kemiisto @  7.12.2009,  20:39 Найти цитируемый пост)
условие перехода на новую строку нетривиально
Да ну?... smile Это ты по-настоящему нетривиального не видел... Ну, вот так, скажем:
Код
const
  Cols = 5;
  s: array[boolean] of string = ('', #13#10);

var curr: integer;

begin
  curr := 1;
  while curr < 100 do
  begin
    write(curr:3, s[(curr > 1) and ((succ(curr) div 2) mod cols = 0)]);
    inc(curr, 2);
  end;
end.
Много преподавателей разберутся, как оно работает?
PM MAIL   Вверх
kemiisto
Дата 8.12.2009, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: нет
Всего: 160



Цитата(volvo877 @  8.12.2009,  13:44 Найти цитируемый пост)
Вообще-то здесь раздел Паскаль, а не Оберон, если средство есть - им никто не запрещал пользоваться.

Я где-то кому-то что-то запрещал?

Цитата(volvo877 @  8.12.2009,  13:44 Найти цитируемый пост)
Много преподавателей разберутся, как оно работает? 

А смысл писать код, в котором не разберётся преподаватель?


--------------------
PM MAIL WWW GTalk Jabber   Вверх
Beltar
Дата 9.12.2009, 13:17 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: нет
Всего: 7



Цитата

в быстродействии, возможно, while даже чуть выиграет


Каким местом?? В общем случае наоборот.

Цитата

Но мне всё более близка идея, что for - костыль.


Мне более близка идея, что Вирт чем старше, тем дурнее. Вместо for лучше бы выбрасывал нафиг, это бессмысленное PROCEDURE т. к. синтаксис вида function Proc(x:Integer); и так ясен, а вот переписывать procedure на function, если вдруг приспичило бесит.
Вместо repeat until, требующего умственное инвертирование порой нетривиального условия, должно быть repeat while, что куда полезнее бессмысленного loop легко реализуемого с помощью
repeat
until false;

По теме, а почему никто (x and 1)>0 не предлагает? smile


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Dizzzy Dozzzer
Дата 13.12.2009, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 15.5.2008

Репутация: нет
Всего: нет



Цитата(volvo877 @  8.12.2009,  10:44 Найти цитируемый пост)
const
  Cols = 5;
  s: array[boolean] of string = ('', #13#10);
var curr: integer;
begin
  curr := 1;
  while curr < 100 do
  begin
    write(curr:3, s[(curr > 1) and ((succ(curr) div 2) mod cols = 0)]);
    inc(curr, 2);
  end;
end.


а что тут непонятного?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

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

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.1002 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.