Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Pascal/Object Pascal/Free Pascal (Delphi/Lazarus)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434

Открыть новую тему     Написать ответ в эту тему

buffy



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Задачи и Программирование на языке Pascal/Object Pascal (Turbo, Delphi и Free Pascal)

 
Перед тем, как задать вопрос: загрузите "версию для печати" (ссылка справа вверху, над номерами страниц) и попробуйте поискать средствами браузера (ctrl+F). Большинство типовых задач уже решались, причем неоднократно!  
ВНИМАНИЕ!

Текст всех программ обязательно заключайте в теги [code][/code].
Большие тексты (более 15 строк) обязательно прячутся в [more]ВАШ ТЕКСТ и/или Ваш КОД[/more]


Альтернативный компилятор
Free Pascal Compiler (FPC) -- мощный компилятор Паскаля
 - девиз: пишешь единожды, компилируешь где хошь...
 - на 99% совместим по коду с ТР и Object Pascal (Delphi)
 - межплатформенный
 - свободный  
Lazarus -- среда разработки для FPC (аналог среды Delphi7)
 
Файлы
Русская справка
Turbo Pascal 7.1 добавлены некоторые модули из Borland Pascal, русская справка.
Borland Pascal 7.0 Полный (13-дискетный, вкл. исходники), никем не модифицированный  дистрибутив.
 
Учебники:
В.В.Фаронов - Turbo Pascal. Начальный курс
В.В.Фаронов - Turbo Pascal. Наиболее полное руководство
Д.М.Ушаков, Т.А.Юркова - Паскаль для школьников
С.М.Окулов - Основы программирования
С.М.Окулов - 2 главы из школьного учебника по информатике
В.М.Котов - Олимпиадные задачи по информатике с решениями
Никитин - набор исходников для типовых задач
Мансуров - Основы программирования в среде Lazarus - основы паскаля, много примеров, блоксхем, алгоритмов. 2010. 772 с. примеры к книге
Деревенец - Песни о Паскале - паскаль для школьников и студентов-первокурсников
Епанешниковы - Программирование в среде Turbo Pascal
Паскаль для школьников. Подготовка к ЕГЭ (2011)
Фадеев - Паскаль для школы
Потопахин - Turbo Pascal Решение сложных задач (2006)
Полезные линки
библиотека алгоритмов (есть и на Паскале)
библиотека алгоритмов (ещё одна)
библиотека алгоритмов (и ещё одна)
Разбор олимпиадных задач по информатике от Михаила Густокашина
 
Проблема с набором русского текста в консоли/Turbo Pascal
решение проблемы с набором русского текста в консоли Windows  скриптом (командным файлом)
 
Построение блок-схем
FCEditor -- Программа для автоматического построения блок-схем программ из исходного текста на языке Pascal (Delphi)
 - для правильной работы исходный текст должен начинаться со слова program или unit

Всего записей: 4 | Зарегистр. 24-10-2002 | Отправлено: 12:46 11-01-2003 | Исправлено: akaGM, 23:06 21-11-2019
LDFNHJYF

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите исправить парочку програм пожалуйста.
 
1)  Даны действительные числа a[1],a[2]...  Известно,  что a[1]>0 и
что среди  a[2],a[3],...  есть  хотя бы одно отрицательное число.
Пусть a[1],...a[n] - члены данной последовательности, предшеству-
ющие первому  отрицательному члену (n заранее неизвестно).  Полу-
чить a[1]+a[2]+...+a[n].
 
2)Даны натуральные числа n,  a[1],...,a[n].  Определить количество
членов a[k] последовательности a[1],...,a[n], являющихся нечетны-
ми числами.
 
3)Даны натуральное число n,  действительная матрица размера n x 9.
Найти среднее арифметическое каждого из столбцов.
 
3)
   const n=2;
Var
   i,j:integer;
   C:array[1..n,1..9] of real;
   s,Sar:real;
begin
     for j:=1 to 9 do
     if j mod 2=0 then
     begin
      s:=0;
      for i:=1 to n do
      s:=s+C[i,j];
      Sar:=s/n;
      writeln (Sar);
     end;
end.
 
2)
   const n=10;
Var
   i,k:integer;
   A:array[1..n] of integer;
begin
     k:=0;
     Writeln('Vvedite massiv');
     for i:=1 to n do
         readln(A[i]);
        for i:=1 to n do
     begin
        if (A[i] mod 3=0) and (A[i] mod 5<>0)
        then
        k:=k+1;
     end;
     Writeln('Koli4estvo=',k);
end.
 
1)   const n=10;
Var
   i:integer;
   A:array[1..n] of integer;
   p:real;
begin
     p:=1;
     Writeln('Vvedite massiv, na4inaya s pologitelnogo');
     begin
     for i:=1 to n do
     begin
          if a[i]>0 then break;
          p:=p*a[i];
     end;
End;
end.

Всего записей: 3 | Зарегистр. 14-10-2007 | Отправлено: 18:34 24-10-2007
dorada81

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Помогите, пожалуйста! необходимо срочно написать процедуру, которая переводит десятичное число в двоичное, к кототому потом можно было бы обращаться как к вектору. Писала вот так:
     j:=m; a:=z-1;
    while j>=1 do begin f[j]:=a mod 2;a:=trunc(a/2);j:=j-1;end;
где m-размерность массива, а - число в десятичной системе счисления.
этот кусок повторяется в программе несколько раз(( хотелось бы его в процедуру.
а может еще как-то можно.  
нужно получить вектора вида
0 0  
0 1
1 0
1 1
и так далее, разной размерности. Каждый из них представляет собой число от 0 до a-1.
работаю с булевыми функциями.
спасибо!)
 

Всего записей: 7 | Зарегистр. 13-12-2006 | Отправлено: 19:03 24-10-2007
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dorada81
если хочешь, на мой старый код
правда, это для строки, но строка ведь тоже массив?
он для Дельфей, но легко адаптируется и под ТР
 

Код:
 
const
  Digits: array[0..$F] of char = '0123456789ABCDEF';
  function int2Bin(l: longint): string;
// на входе целое, на выходе бинарная строка
  var
    i: longint;
    b: byte;
  begin
    b := 1;
    setlength(Result, 32);
    for i := 31 downto 0 do begin
      Result[b] := Digits[ord(l and longint(1 shl i) <> 0)]; //0 or 1
      inc(b);
    end;
  end;
 

Всего записей: 24846 | Зарегистр. 06-12-2002 | Отправлено: 21:20 24-10-2007
ItsJustMe

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Мысли в слух: а какой сакральный смысл имеет массив Digits?
Не проще (и понятнее!) было ли написать:

Код:
Result[b] := chr(48 + ord(l and longint(1 shl i) <> 0));

Правда, меня ord смущает, ведь все таки -1 < 0, но тут я доверяю вашему знанию.

Всего записей: 2040 | Зарегистр. 02-09-2005 | Отправлено: 23:55 24-10-2007
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ItsJustMe

Цитата:
какой сакральный смысл имеет массив Digits?

Digits ещё во множестве мест использовалась...
 
добавлено
вспомнил...
вот, например:
function Hex2Str(b: byte): string;
begin
  Hex2Str[0] := #2;
  Hex2Str[1] := Digits[b shr 4];
  Hex2Str[2] := Digits[b and $f];
end;
по-моему, ничего так вышло...

 
дело давнее... да и
Digits[ord(l and longint(1 shl i) <> 0)]
vs
chr(48 + ord(l and longint(1 shl i) <> 0))
and c выборкой против одного add -- не слишком-то отличны по скорострельности...
ещё надо вспомнить как там chr() у них была реализована...
 

Цитата:
-1 < 0

а вот это где?
 

Цитата:
тут я доверяю вашему знанию

правильно!
доверяй, но проверяй...

Всего записей: 24846 | Зарегистр. 06-12-2002 | Отправлено: 07:33 25-10-2007 | Исправлено: akaGM, 07:46 25-10-2007
Algofil



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Правда, меня ord смущает, ведь все таки -1 < 0

имхо ord всего навсего превращает последний бит в буль, именно поэтому нечетное=тру
 
Добавлено:
лоханулся, давно не кодил )) ord и succ применимы к порядковым и вертают пред или след значение
 
Добавлено:
тьху pred и succ, ord - порядковый номер, счас найду кто там бит смотрит
 
Добавлено:
во! odd - смотрит на последний бит

Всего записей: 247 | Зарегистр. 19-09-2007 | Отправлено: 09:47 25-10-2007
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
что такое оrd? вы просто основы паскаля забыли...
 

Код:
 
type
  TEnum = (akaGM, Algofil, ItsJustMe); //гы-гы
begin
  writeln(ord(akaGM)); // да, я первый! т.е. нулевой...
  writeln(ord(Algofil));
  writeln(ord(ItsJustMe));
end.
 

 
у меня же итоговое выражение сводится к значению ord(true) или ord(false)
true/false -- тот же перечислимый тип...
и берётся первый или второй чар из массива...
сам теперь вижу, что не очень элегантно получилось, но, кстати, в дельфях до сих пор
такой функции нет или я плохо сорсы смотрел...
 
-------
Algofil
во нафигачил...
особенно интересна функция тьху()
 
ты эта, лучше кнопку "редактировать" юзай, всё равно постов не добавится...

Всего записей: 24846 | Зарегистр. 06-12-2002 | Отправлено: 10:14 25-10-2007 | Исправлено: akaGM, 10:27 25-10-2007
Algofil



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
ты эта, лучше кнопку "редактировать" юзай, всё равно постов не добавится...

о! а тут и кнопочки ессь! аттлична... чё это я всё в окне отправить...
а зачем постов добавится/не добавится? - это прикол?

Всего записей: 247 | Зарегистр. 19-09-2007 | Отправлено: 13:15 25-10-2007
SONATKA

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день!
Прошу помощи в решении задач.
Надеюсь не откажите.
 
1. Выводить на экран символьную константу (свое имя) с первой позиции до конца строки, а  номер строки ввести с экрана. Выход осуществить по нажатию произвольной клавиши.
2. Ввести пятизначное число, вывести на экран на первой строке число единиц, содержащихся в этом числе на второй строке число десятков и число единиц, содержащихся в числе на третьей строке число сотен, число десятков и число единиц на четвертой строке число тысяч, сотен, десятков и число единиц на пятой строке число десятков тысяч, тысяч, сотен, десятков и число единиц. Отвести под каждую цифру 4 знакоместа.
 
Заранее спасибо!

Всего записей: 1 | Зарегистр. 25-10-2007 | Отправлено: 13:58 25-10-2007
Algofil



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
дело давнее... да и  
Digits[ord(l and longint(1 shl i) <> 0)]  
vs  
chr(48 + ord(l and longint(1 shl i) <> 0))  
and c выборкой против одного add -- не слишком-то отличны по скорострельности...

без обеда, млин работаем на работе...
итак быстродействие говорите? нехай есть переменные dec и bin, допустим dec:integer, занимает в памяти 2 байта, старший бит занят знаком, а bin - строка, тада так:
for i:=1 to 15 do
 begin
   if odd(dec) then bin:="1"+bin
                    else bin:="0"+bin;
   shr(dec);
 end;
 
ну вот значить, паскаль некогда было настроить на работе, но вроде как odd и shr из самых быстрых
 
Добавлено:
по поводу посчитать входимость каждого слова при последовательном доступе такая идея:
1. начало поиска = начало файла
2. ставим указатель на начало поиска, флаг опустить, словов = 0
3. парсим текущее слово (можно тупо его копию, можно хэш), инкремент словов
4. шпарим по файлу до конца, если очередное слово не равно искомому и флаг не поднят то флаг поднять, начало поиска = текущая позиция, иначе инкремент словов
5. напечатать слово и словов
6. петля на п.2
 
кривовато 2 инкремента, но улучшать идею до красивого кода некогда

Всего записей: 247 | Зарегистр. 19-09-2007 | Отправлено: 14:34 25-10-2007 | Исправлено: Algofil, 14:46 25-10-2007
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Algofil
я не очень понял...
 

Код:
 
for i:=1 to 15 do
 begin
   if odd(dec) then bin:="1"+bin
                    else bin:="0"+bin;
   shr(dec);
 end;
 

тут несколько ошибок и один недочёт, сам найдёшь?
 

Цитата:
но вроде как odd и shr из самых быстрых

и что? самые быстрые инструкции -- те, которые являются  
-- "один-в-один" процессорными shr -- shr, and -- and итд
и
-- побитовые, т.е. инструкции работы непосредственно с битами,
например (деление а на 2)
 
 a := a div 2; существенно медленнее, чем a := a shr 1;  
 
или обнуление регистра:
 mov eax, 0 медленнее
 xor eax, eax
 
так и в чём был вопрос?
 

Всего записей: 24846 | Зарегистр. 06-12-2002 | Отправлено: 14:51 25-10-2007 | Исправлено: akaGM, 15:47 25-10-2007
Algofil



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
так и в чём был вопрос?

вопроса не было вроде, предложил перевода дек-бин имхо с меньшим количеством действий чем у тебя, ты ж писал про версус своей конструкции или я опять продрушлял? а чё там за ошибки? я люблю признавать ошибки малой кровью

Всего записей: 247 | Зарегистр. 19-09-2007 | Отправлено: 15:17 25-10-2007
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Algofil
ты что там, на листочке компилируешь?
ошибки признавать, конечно, хорошо,  лучше, правда, их вообще не совершать...
а так, приходится их искать и устранять...
так что давай действуй...

Всего записей: 24846 | Зарегистр. 06-12-2002 | Отправлено: 15:35 25-10-2007
ItsJustMe

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:

Цитата:
-1 < 0
а вот это где?

Когда ord работает с enumами - все понятно, но ведь False == 0, True == -1. Мне не ясно, как ord будет работать с таким
type
  TBoolEnum = (True=-1, False=0);
Но это не столь важно

Цитата:
ты что там, на листочке компилируешь?

Вопрос был адресован не мне, но я тоже на него отвечу, т.к. akaGM в точку попал Pascal'я я у себя ни в каком виде не держу. Пишу так, не проверяя, компайлится ли это вообще. В конце концов, я же выдаю общую идею, а мелкие ошибки в проге человек и сам исправит.

Всего записей: 2040 | Зарегистр. 02-09-2005 | Отправлено: 03:34 26-10-2007
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
выдаю общую идею, а мелкие ошибки в проге человек и сам исправит

какие проблемы... ни в коей мере не хотел никого обидеть, если что не так прошу извинить
Algofil,  не обижайся...
кстати, Algofil -- от ЛюбительАлгоритмов, т.е. Алгоритмист?
 
действительно: псевдокод он и в африке -- паскаль...
 
а в случае с
 type
   TBoolEnum = (True=-1, False=0);  
 
будет
  ord(True) = -1
  ord(False) = 0
как и заказывали, но это действительно неважно...
 
кстати,

Цитата:
Pascal'я я у себя ни в каком виде не держу.  

а почему бы и не поставить какой-нибудь ни_к_чему_не_обязывающий FreePascal?
http://www.freepascal.org/
так, на всякий случай...
 
и ещё раз кстати
тут вот девушка помощи просит...
но что-то я даже задачу (вторую) не смог понять...
 
SONATKA
а первую с использованием crt модуля вроде так:
 

Код:
 
uses Crt;
 
const
  myName = 'My name is Vasya Pupkin';
var
  linenum: byte;
begin
  clrscr;
  write('с какой строки вы нам представитесь? ');
  readln(linenum);
  if linenum > 25 then {проверочка не помешает}
     linenum := 25;
  clrscr;
  gotoxy(1, linenum);
  readkey;
end.
 

 
написал и... стёр...

Всего записей: 24846 | Зарегистр. 06-12-2002 | Отправлено: 06:56 26-10-2007 | Исправлено: akaGM, 08:30 26-10-2007
Algofil



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
for i:=1 to 15 do  
 begin  
   if odd(dec) then bin:="1"+bin  
                    else bin:="0"+bin;  
   shr(dec);  
 end;


Цитата:
тут несколько ошибок и один недочёт, сам найдёшь?


Цитата:
ты что там, на листочке компилируешь?

ты как в воду глядел, нету у мну компилятора, точнее не запускается и некогда разбираться почему, да и не приветствуется у нас ковыряние в казенных тачках, выдали с залитым клоном и пользуйся...
ошибок нашел 1 штук, считал сдвиг процедурой (есть такой подход в синтаксисах, все считать процедурами и/или функциями) если написать dec:=dec shr 1; вместо shr(dec); должно работать, недочеты:
1. до входа в цикл проверять dec: равно 0 - печатай 0, меньше 0 - печатай внутреннее представление или че хошь, больше 0 - цикл пока dec больше 0.
намана? что скажешь про мое решение версус решение akaGM?

Цитата:
кстати, Algofil -- от ЛюбительАлгоритмов, т.е. Алгоритмист?

да, это старая история, нику лет 15, в разных форумах... уже и в алкофила пытались перекрестить ))) есть такой грешок.
по поводу девушка просит:

Цитата:
2. Ввести пятизначное число, вывести на экран на первой строке число единиц, содержащихся в этом числе на второй строке число десятков и число единиц, содержащихся в числе на третьей строке число сотен, число десятков и число единиц на четвертой строке число тысяч, сотен, десятков и число единиц на пятой строке число десятков тысяч, тысяч, сотен, десятков и число единиц. Отвести под каждую цифру 4 знакоместа.

1. Издевательский вариант: преобразовать число в cheslo:string[5] (если страховка не нужна - читать сразу строку) и вывести построчно:
'   '+cheslo(5)
'   '+cheslo(4)+'   '+cheslo(5)
'   '+cheslo(3)+'   '+cheslo(4)+'   '+cheslo(5)
....
2. Стандартный вариант: написать правильные циклы (если препод любит фор, то форы) в которых правильно делить, округлять, вычитать и т.п.
3. Хитрый вариант: считывать по одному символу в рекурсивную процедуру с ограничением по глубине 5, печатать символы при входе в одну строку, потом вывалиться и мувить в видеопамяти нужные куски в указанные позиции вывода
 

Всего записей: 247 | Зарегистр. 19-09-2007 | Отправлено: 09:58 26-10-2007 | Исправлено: Algofil, 10:31 26-10-2007
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Algofil

Цитата:
 
 for i:=1 to 15 do  begin  
   if odd(dec) then bin:="1"+bin  
                    else bin:="0"+bin;  
   shr(dec);  
 end;
 

да, я ошибки синтаксиса и имел ввиду:
- shr
- и строки/отдельные символы через одиночную кавычку
а недочёты:
16-битник всё-таки 16 раз гнать и надо
+
dec() -- псевдофункция декремента, просто неудачное имя идентификатора выбрано и всё
 

Цитата:
что скажешь про мое решение версус решение akaGM?

клёвая находка с нечётностью!
у меня только одна претензия к реализации алга (по крайней мере так как его уже я внизу нарисовал) -- медленная работа со строками
 
итак:
Код:

(*****************************************
  Copyleft 2007, Algofil, akaGM
 
  function int2Bin
  converts int32 to its binary string representation
*****************************************)

const
  ZEROES32 = '00000000000000000000000000000000'; // тут ровно 32 нуля, можно не считать...
function int2Bin(l: longint): string;
// int32 to its binary string representation
var
  i: longint;
  s: string[32];
begin
  s := ZEROES32;
  for i := 1 to 32 do begin  
    if odd(l) then
      s := '1' + s  
    else  
      s := '0' + s;  
    l := l shr 1;  
  end;
 
  Result := s;
end;
 

// проверочный прогон, int2Bin2 -- "истинное" значение
begin
  writeln('1=', int2Bin2(1));
  writeln('1=', int2Bin(1));
  writeln('0=', int2Bin2(0));
  writeln('0=', int2Bin(0));
  writeln('-1=', int2Bin2(-1));
  writeln('-1=', int2Bin(-1));
  writeln('ff0000ff=', int2Bin2($ff0000ff));
  writeln('ff0000ff=', int2Bin($ff0000ff));
  writeln('00ff0000=', int2Bin2($00ff0000));
  writeln('00ff0000=', int2Bin($00ff0000));
  writeln('10=', int2Bin2(10));
  writeln('10=', int2Bin(10));
end.

выдача:
1=00000000000000000000000000000001
1=00000000000000000000000000000001
0=00000000000000000000000000000000
0=00000000000000000000000000000000
-1=11111111111111111111111111111111
-1=11111111111111111111111111111111
ff0000ff=11111111000000000000000011111111
ff0000ff=11111111000000000000000011111111
00ff0000=00000000111111110000000000000000
00ff0000=00000000111111110000000000000000
10=00000000000000000000000000001010
10=00000000000000000000000000001010

о как
что скажешь?
 
ItsJustMe
ну люблю я константы, люблю...

Всего записей: 24846 | Зарегистр. 06-12-2002 | Отправлено: 11:13 26-10-2007 | Исправлено: akaGM, 11:40 26-10-2007
Algofil



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
- и строки/отдельные символы через одиночную кавычку  
а недочёты:  
16-битник всё-таки 16 раз гнать и надо  
+  
dec() -- псевдофункция декремента, просто неудачное имя идентификатора выбрано и всё

закачал фрипаскаль - пасип, 16-битник 5 прогнал три раза получил 101
насчет dec - забыл, но паскаль не ругнулся ))
 
Цитата:
что скажешь?

наманый ход, тока у мну в новом варианте нет лидирующих нулей,  
если взять переменную Timer : longint absolute $0040:$006C то можно и тиками померяцца, сверху цикл шагов на 1000-10000 смаря по процу...

Всего записей: 247 | Зарегистр. 19-09-2007 | Отправлено: 11:28 26-10-2007
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Algofil
ну блин ошибка это
поставь в функе цикл до 31 -- фигню получишь...
 
запугал ты совсем девушку...
cheslo хорошо ещё не chreslo гы-гы
пиши хоть N или Num
 

Цитата:
закачал фрипаскаль

у него даже идешка есть -- Lazarus (из первого дьяблы гы), сыровата правда...
я считаю, что он лучше гнутого и виртуала из свободных...
 

Цитата:
тока у мну в новом варианте нет лидирующих нулей

а у меня есть :P
 

Цитата:
тиками померяцца

ну прогони, у тя же есть мой старый код...
мне Дельфи не дают на биос абсолютится или я всё это забыл на фиг
можешь даже промежуточную s[32] выкинуть и к result'у сразу цепляться...

Всего записей: 24846 | Зарегистр. 06-12-2002 | Отправлено: 11:41 26-10-2007 | Исправлено: akaGM, 12:18 26-10-2007
Algofil



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
ну блин ошибка это  
поставь в функе цикл до 31 -- фигню получишь...

это не баг, это фича (С)
не ошибка, просто мы говорим о разных вещах, ты о внутреннем представлении переменных, я о двоичной записи натурального числа, а препод девушкин еще о чем-то, поэтому CASE и, как было сказано выше, что ваша милость пожелает ))

Цитата:
запугал ты совсем девушку...

я же сказал что вариант издевательский (в смысле над преподом) я б лично так и сделал, знаю многих кто пошел бы по варианту 3, если не хуже того, один мой знакомый сдавал проги на паскале исключительно с инлайнами, даж на граф.тпу ложил с прибором ))
 
тиками померяемся када решим че надо получить, иначе у меня будет фора, на лонгинтах весьма приличная
 
че скажешь про последовательные файлы? вот кстати боянчег:
в файле N попарно различных натуральных чисел, предложить алгоритм поиска наименьшего числа отсутствующего в файле при последовательном доступе

Всего записей: 247 | Зарегистр. 19-09-2007 | Отправлено: 12:24 26-10-2007 | Исправлено: Algofil, 12:28 26-10-2007
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Pascal/Object Pascal/Free Pascal (Delphi/Lazarus)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru