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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
WolanDishe

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KpocaB4er16
ещё раз спасибо! в принципе, всё понятно, но если кто-то ещё предложит альтенативное решение, буду рад (самому даже интересно))

Всего записей: 7 | Зарегистр. 05-09-2007 | Отправлено: 17:50 24-09-2007
KpocaB4er16

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Algofil может и мне поможешь?
1. В одномерном массиве удалить все элементы, которые больше среднего арифметического элементов данного массива (массив становится короче).
2. В двумерном массиве заменить все элементы, стоящие ниже главной диагонали на максимальный элемент побочной диагонали.
3. В одномерный массив добавить столько элементов, равных максимальному, какое значение имеет индекс минимального (то есть например минимальный элемент стоит на пятом месте, надо в массив добавить 5 максимальных элементов).
4. Каким образом можно отформатировать двумерный элемент, чтобы все элементы одного столбца стояли строго друг под другом?  

Всего записей: 33 | Зарегистр. 14-04-2007 | Отправлено: 17:56 24-09-2007
Algofil



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

Цитата:
1. В одномерном массиве удалить все элементы, которые больше среднего арифметического элементов данного массива (массив становится короче).  

насколько я помню разные процедурные языки, тока васик позволяет на лету изменять дименшены массивов, в паскале придется юзать АТД, двусвязный список подойдет, но препода могут на дурку увезти с мигалкой, если ты станешь ему рассказывать как организовал динамические структуры...
статический вариант понимания задачи:
1. объявить массив
2. в цикле его заполнить чем прикажут, одновременно считая сумму
3. посчитать среднее арифметическое (предварительно узнав не следует ли считать ету хрень после каждого удаления - в этом случае останется 1 элемент)
4. в цикле (обязательно DO ... LOOP, или чета вроде с ручным расчетом след индекса и принудительным выходом, фор-некст будет глючить по черному) бить все элементы которые больше ср_ар и тут же делать MOVE для хвоста массива, и еще тут же затирать в хвосте эн+один элемент.  
 

Цитата:
2. В двумерном массиве заменить все элементы, стоящие ниже главной диагонали на максимальный элемент побочной диагонали.

1. объявить массив
2. в цикле+в цикле его заполнить чем прикажут, одновременно определяя максимальный элемент побочной диагонали (если будет криво, лучше напиши еще один раз эти хреновы вложенные циклы, пусть х растет от 1 до эн, а игрек уменьшается от эн до 1 - будет тебе побочная диагональ)
3. еще раз пролопать массив проверяя условие x<y - это вроде по любому ниже главной диагонали, ну и меняй на то шо нашел в п.2
 

Цитата:
3. В одномерный массив добавить столько элементов, равных максимальному, какое значение имеет индекс минимального (то есть например минимальный элемент стоит на пятом месте, надо в массив добавить 5 максимальных элементов).  

самое страшное заранее объявить массив ровно в два раза больше, чем нужно для размещения элементов, на случай когда минимальный стоит в конце
хорошо бы придумать умные идентификаторы типа:
konec_dalshe_ne_iskat_scuko
не то как раз забудешь где закончился "данный массив" и начались добавления
 

Цитата:
4. Каким образом можно отформатировать двумерный элемент, чтобы все элементы одного столбца стояли строго друг под другом?  

вопрос по синтаксису, почитать хелп, табуляцию при выводе вроде еще не отменяли со времен фортрана для ЕС 1035
 

Всего записей: 247 | Зарегистр. 19-09-2007 | Отправлено: 18:26 24-09-2007
Jokerjar79



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
KpocaB4er16, это задачи на какую тему? Указатели? Вот думал над первой задачкой, получилось не совсем удаление (скорей, копирование)...

Код:
type
  DynArr = array[0..0] of integer;
 
var
  Arr, NewArr: ^DynArr;
  i,k,size,newsize: integer;
  av: real;
 
begin
  writeln('Введите размер массива');
  readln(size);
  getmem(Arr,size*sizeof(integer));
  randomize;
  writeln('Исходный массив:');
  av := 0;
  for i := 0 to size - 1 do
    begin
      Arr^[i] := random(100);
      write(Arr^[i]:3);
      av := av + Arr^[i];
    end;
  writeln;
  av := av / size;
  writeln('Средн. арифм. = ', av:0:2);
  newsize := 0;
  for i := 0 to size - 1 do
    if Arr^[i] <= av then
      inc(newsize);
  getmem(NewArr,newsize*sizeof(integer));
  writeln('Результат:');
  k := 0;
  for i := 0 to size - 1 do
    if Arr^[i] <= av then
      begin
        NewArr^[k] := Arr^[i];
        write(NewArr^[k]:3);
        inc(k);
      end;
  freemem(Arr,size*sizeof(integer));
  freemem(NewArr,newsize*sizeof(integer));
  readln;
end.


Всего записей: 710 | Зарегистр. 08-09-2007 | Отправлено: 18:48 24-09-2007
KpocaB4er16

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Мда... поэма Блока явно не пошла мне на пользу... Нифига не понимаю
Динамичные структуры не покатят, задачи на повторение-подготовку к контрольной, которая уже завтра. Про дурку для препода: неплохо бы...
Лан, всем спасибо, я на это дело забил... я спааааать... Всем удачи...

Всего записей: 33 | Зарегистр. 14-04-2007 | Отправлено: 20:22 24-09-2007
Janius



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

Цитата:
Задачя №1  
Паралелограм задано координатами трьох вершин x1,y1,x2,y2,x3,y3 обчислити можливі координати четвертої вершини паралелограма.  
(скористатися властивістю діагоналей паралелограма:діагоналі паралелограма перетинаються і  
точкою перетину діляться пополам).  


Цитата:
вобщем-то это почти полное решение задачи, остается добавить, что на любых трех точках не лежащих на одной прямой можно построить параллелограмм и притом тока один

 
???
По-моему можно построить 3 параллелограмма, а не 1.
 
А вот как решить эту задачу не прибегая к вычислению квадратных корней и квадратов?  
Только с помощью банального Сложения (+), Вычитания (-) и деления пополам
 

Всего записей: 21 | Зарегистр. 03-08-2004 | Отправлено: 21:00 24-09-2007 | Исправлено: Janius, 21:19 24-09-2007
Stasiuk

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый вечер
я тут новенький, у меня вот такой вопрос.
Ну никак не могу справиться с программой, вроде пишу правильно, но 3 месяца летнего отдыха абсолютно выветрили мой мозг
 
Условие: есть текст, надо в каждом слове данного текста первый и последний символ оставить такой же, а остальные перемешать (можно сдвинуть все влево или вправо на одну(не столь важно это)).
 
program p27;
  var fi : file of char;
      fo : text;
      simbol, passim : char;
      zodis, newzodis, newz, pirsim: string;
      i, l, k : integer;
begin
  assign (fi, 'duom.txt');
  reset (fi);
  assign (fo, 'rez.txt');
  rewrite (fo);
  read (fi, simbol);
  while (simbol <> '.') do
    begin
      k := ord(simbol);
      writeln (k);
      newz := '';
      zodis := '';
      while (k <> 32) do
        begin
          zodis := zodis + simbol;
          passim := simbol;
          read (fi, simbol);
          k := ord(simbol);
          writeln (zodis, ' ', passim);
        end;
      newzodis := zodis;
      l := length(zodis);
      pirsim := zodis;
      delete (pirsim, 2, l);
      delete (newzodis, l-1, l);
      delete (newzodis, 1, 2);
      for i := l-2 downto 1 do
        newz := newz + newzodis[i];
      write (newz, ' ', simbol);
      write (fo, newz, ' ');
      write (fo, simbol);
    end;
  close (fi);
  close (fo);
end.
 
я уже столько вариантов перебрал, что выкладываю последний. а это первый сохраненный.
 
program p27;
  var fi, fo : text;
      simbol, pirsim, passim : char;
      zodis,newzodis : string;
      i, j, l : integer;
begin
  assign (fi, 'duom.txt');
  reset (fi);
  while not eof(fi) do
    begin
      read(fi, simbol);
      while (simbol <> ' ') and (simbol <> '.') and (simbol <> '!') and
            (simbol <> '?') and (simbol <> ',') and (simbol <> '\') and  
            (simbol <> '_') and (simbol <> '"') and (simbol <> '/') and
        (simbol <> '-') and (simbol <> ' ') do
    begin
      zodis := zodis + simbol;
      read (fi, simbol);
    end;
      passim := simbol;
      pirsim := zodis[1];
      read (fi, simbol);
      newzodis := zodis;
      l := length(zodis);
      delete (newzodis, 1, 1);
      delete (newzodis, l-2, 1);
      for i := l-2 downto 1 do
        begin
      newzodis :=  
    end;
    end;
  close (fi);
   
  assign (fo, 'rez.txt');
  rewrite (fo);
   
  close (fo);
end.
 
можно не решать, а прост онаставить меня на путь истинный

Всего записей: 8 | Зарегистр. 24-09-2007 | Отправлено: 23:02 24-09-2007
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Stasiuk
ну не хотите решения, не надо ;-))))
 
подсказка:
1) если длина слова меньше-равна двум - ничего делать не надо
2) у вас получается бесконечный цикл, когда k=32 (т.е. встретили пробел, и больше ничего не читаем из файла) - нужно где-то сделать ещё раз
  read (fi, simbol);  
  k := ord(simbol);  
3) pirsim := zodis; а зачем? pirsim нигде больше не испоьзуется!!!
4) за зачем вам удаление из строки символов?
возьмите  
 newz := Copy(zodis,1,1);
потом цикл от предпоследней буквы до второй - получатся буквы в обратном порядке
  newz := newz + zodis[i];  
потом newz := newz + Copy(zodis,l,1); последняя буква
тогда и newzodis не нужно...
 
 
 
 
 
Добавлено:
а вообще, это препод хочет получить такую забавность:
"По рзелульаттам илссеовадний одонго анлигйсокго унвиертисета, не иеемт занчнеия, в кокам пряокде рсапожолены бкувы в солве. Галвоне, чотбы преавя и пслоендяя бквуы блыи на мсете. Осатьлыне бкувы мгоут селдовтаь в плоонм бсепордяке, все-рвано ткест чтаитсея без побрелм. Пичрионй эгото ялвятеся то, что мы не чиатем кдаужю бкуву по отдльенотси, а все солво цликеом."
8-)

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 00:26 25-09-2007
Stasiuk

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Именно так спасибо.
Ну если вам не лень это прорешать, я был бы рад.
Сравнивать ваш вариант с переписанным по вашим наводкам мой вариант
 
Добавлено:
я понимаю, что я глупый
но в такое время я не могу понять, что опять не так )
 
program p27;
  var fi : file of char;
      fo : text;
      simbol, passim : char;
      zodis, newz: string;
      i, l, k : integer;
begin
  assign (fi, 'duom.txt');
  reset (fi);
  assign (fo, 'rez.txt');
  rewrite (fo);
  read (fi, simbol);
  while not eof(fi) do
    begin
 
      k := ord(simbol);
      writeln (k);
      newz := '';
      zodis := '';
      while (k <> 32) do
        begin
          zodis := zodis + simbol;
          passim := simbol;
          read (fi, simbol);
          k := ord(simbol);
          writeln (zodis, ' ', passim);
        end;
      l := length(zodis);
      if l <= 2
        then write (fo, zodis)
        else begin
          newz := Copy(zodis,1,1);
          for i := l-1 downto 2 do
            newz := newz + zodis[i];
          newz := newz + Copy(zodis,l,1);
          write (newz, ' ', simbol);
          read (fi, simbol);
          k := ord(simbol);
          write (fo, newz, ' ');
          write (fo, simbol)
        end
    end;
  close (fi);
  close (fo);
end.
 
что теперь не так?
Run time error:
Nr.: 100 - disk read error

Всего записей: 8 | Зарегистр. 24-09-2007 | Отправлено: 00:45 25-09-2007
Algofil



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

Цитата:
По-моему можно построить 3 параллелограмма, а не 1.

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

Цитата:
А вот как решить эту задачу не прибегая к вычислению квадратных корней и квадратов?  
Только с помощью банального Сложения (+), Вычитания (-) и деления пополам

дак никто и не заставляет, найди разложение корня в ряд и вперед! тока не надейся из целых чисел (например стороны 3, 5, 7) получить банальным делением пополам иррациональную длину диагонали, ок? а то с мигалками увезут ))
 
 
Добавлено:

Цитата:
 
type
DynArr = array[0..0] of integer;  
var  
  Arr, NewArr: ^DynArr;  
...
begin  
...
      Arr^[i] := random(100);

компилятора у меня нету, но этот трюк настораживает, когда индекс станет не ноль, ТП далжон бы ругнуться, кроме того отсутствуют две строки директив, кажется надо нажать контрол+О+О чтобы ручками не выписывать, кажись R- помогает в таких случаях... вобщем замечательное, т.н. "хитрое" решение, тока вот потом на производстве беда с хитрыми решениями, гораздо лучше изучить какой-нить ортодоксальный стиль программирования и потом ему следовать, труднообнаружимые, т.н. "плавающие" ошибки берут гораздо больше крови в отладке. Попробуйте например, используя указатели написать модули для работы с АТД (Абстрактные Типы Данных), поверьте, списки, очереди и стеки сильно облегчают жизнь и понимание многих стандартных алгоритмов, например построение цикла Эйлера. Конечно приятно самому придумать сортировку Хоара, но лучше её грамотно применить.
 
Добавлено:

Цитата:
вроде пишу правильно

1. файл открыт как чар, оч плохо, откуда мы знаем что сегодня в паскале катит за чар? или двоичный или текст, лучше текст, тада действует ф-ция ЕОЛ енд-оф-лайн, в двоичном надо будет искать символы 10 и 13
2. точка не есть признак конца текста, нужен ЕОФ
3. пробел не есть признак начала и/или конца слова, эту роль могут играть начало и конец строки/файла, знаки препинания и т.п.  
4. для уверенности что мы идем по слову рекомендую завести чаровский тип bukva, в ТП это приветствуется
ну а в целом Вы верно рассуждаете, просто побольше брякпойнтов и уверенности в себе, удачи!
 
 
Добавлено:
SERGE_BLIZNUK, +1

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

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Stasiuk
1) вот решение - отличия найдите сами $-))))
 
2) у вас проблема чтения возникала в том случае, когда в конце текста не было пробела
внутри цикл был while ... read()
нужно было добавить  
      while (k <> 32) and Not Eof(fi) do ..
впрочем, я позволил себе добавить ещё разделители слов - точка, запятая и переводы строк #13#10- как абсолютно верно сказал Algofil
 
3) лучше придумать другой алгоритм перестановок - переставлять соседние буквы (кроме первой и последней, разумеется) - иначе получаемый текст читается ПЛОХО.. слишком перепутаны буквы, мозг отказывается воспринимать слово целиком... ;-)))
 

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 10:16 25-09-2007
Janius



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

Цитата:
нарисуем на салфетке (или в пейнте например) произвольный параллелограмм, можно начать с квадрата, потом взять ромб, прямоугольник и наконец произвольный параллелограмм, если не хватает воображения (как у меня с похмелья) сделаем из детского конструктора, далее попробуем зафиксировать три вершины и убедимся что четвертая ну никак не хочет перемещаться куда либо, следственно постороить 3 (кстати само число настолько неудобное, что настораживает, почему не 2 или 4? хде симметрия, хде икебана?) разных п-мма на 3 точках низзя, "эта нада проста запомнить дэти, панять эта - ниииивазможно" (С)  

 
Каждая пара вершин из трех заданных - это и есть диагональ будующего параллелограмма. Таких пар 3.  

 

Цитата:
дак никто и не заставляет, найди разложение корня в ряд и вперед! тока не надейся из целых чисел (например стороны 3, 5, 7) получить банальным делением пополам иррациональную длину диагонали, ок? а то с мигалками увезут ))  

 
А зачем вообще длину диагоналей считать? А если их не считать то и корни ни к чему!
И в ряды раскладывать ничего не надо.
 
Задача, по-моему, решается с использованием Сложения (+), Вычитания (-) и, именно, деления пополам ( x / 2).  
 
 

Всего записей: 21 | Зарегистр. 03-08-2004 | Отправлено: 16:13 25-09-2007 | Исправлено: Janius, 16:31 25-09-2007
Algofil



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

Цитата:
 Каждая пара вершин из трех заданных - это и есть диагональ будующего параллелограмма. Таких пар 3.  

благодарствуйте,  мой респект! прям как опохмелился )))

Цитата:
Задача, по-моему, решается с использованием Сложения (+), Вычитания (-) и, именно, деления пополам ( x / 2). Как раз для школы

ну второй раз не буду нарываться, скорыстався пидказкою, шо мол средина - центр симметрии и фсе такое, Вашу подсказку понял - ответ думаю...
 
 
Добавлено:
ну ё-маё, пришлось на какой-то обертке рисовать клеточки...
кароч у меня без деления на 2 вышло симметрично, надо просто еще пива взять, без клеточек не мог вспомнить как в школе рисовали симметричные точки...

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



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Algofil
 
Ох-ох!
Я тоже извиняюсь - там и деление на 2 вроде ни к чему.  
Только сложение (+) и вычитание (-). И все!  
Забыл, что существует сокращение дробей
 

Всего записей: 21 | Зарегистр. 03-08-2004 | Отправлено: 16:52 25-09-2007 | Исправлено: Janius, 16:57 25-09-2007
Stasiuk

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо, понял ошибки буду дальше учиться.
Сейчас перепишу алгоритм чтобы перемешивал по другому, сначала чётные потом нечётные например

Всего записей: 8 | Зарегистр. 24-09-2007 | Отправлено: 18:48 25-09-2007
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EsTeR
Цитата:
нужно составить программу для нахождения корня уравнения 2xsinx-cosx=0 на отрезке [z;r](числа скажут на зачёте) с погрешностью 0,001 методом Ньютона

скажите, задача ещё актуальна? решение нужно?..
 
 
Добавлено:
 
Stasiuk
Цитата:
Спасибо, понял ошибки  буду дальше учиться.

Вы молодец! Так держать!

Цитата:
Сейчас перепишу алгоритм чтобы перемешивал по другому, сначала чётные потом нечётные например  

лучше чтобы чётные и нечётные местами менял..
 

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 20:11 25-09-2007
EsTeR

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SERGE_BLIZNUK
да, вопрос актуален.
спасибо, что не забыли)

Всего записей: 41 | Зарегистр. 15-12-2006 | Отправлено: 22:30 25-09-2007
Janius



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

Цитата:
   
Паралелограм задано координатами трьох вершин x1,y1,x2,y2,x3,y3 обчислити можливі координати четвертої вершини паралелограма.    
(скористатися властивістю діагоналей паралелограма:діагоналі паралелограма перетинаються і точкою перетину діляться пополам).  

 
Возможное решение ! ?
 
type
  Tpoint = record
    x,y: real;
  end;
var
  ver: array [0..4] of Tpoint;
  otvet: array [0..2] of TPoint;
  i: integer;
 
begin
  {vvod dannyh}
  ver[0].x :=  ...;
  ver[0].y :=  ...;
  ver[1].x :=  ...;
  ver[1].y :=  ...;
  ver[2].x :=  ...;
  ver[2].y :=  ...;
  ver[3].x := ver[0].x;
  ver[3].y := ver[0].y;
  ver[4].x := ver[1].x;
  ver[4].y := ver[1].y;
 
  { Raschet         }
  for i := 0 to 2 do begin
    otvet[i].x := ver[i].x + ver[i+1].x - ver[i+2].x;
    otvet[i].y := ver[i].y + ver[i+1].y - ver[i+2].y;
  end;
 
  {Vyvod rezultatov}
  for i := 0 to 2 do writeln (i:2, ': x= ', otvet[i].x, 'y= ', otvet[i].y);
end.

Всего записей: 21 | Зарегистр. 03-08-2004 | Отправлено: 22:45 25-09-2007 | Исправлено: Janius, 22:49 25-09-2007
Algofil



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Janius
я тож вчера, уже без компа (и без листочка в клетку, гы-гы) сообразил, что это просто параллельный перенос - параллелограм же, семёнсемёныч!, точка пересечения диагоналей просто развод (хотя центральная симметрия отсекает 3 противоположных вектора), но! - с банальным расположением точек на одной прямой че делать то будем? там же сказано можлыви, тоись возможные вершины...
Ваш код, достопочтенный Janius, ёмок и стилён, надо бы додумать еще красивый иф (я по ходу знаю уже "проверочное слово", но не хочу ломать кайф)

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ЛЮДИ ПЛЗ ПРОВЕРТИ И ЧУТОК ПЕРЕДЕЛАЙТЕ ГРАФИК ПОД ЕТУ ФУНКЦИЮ f(x)=(2x^3-6x^2+5x-1)\(2x^3+6x^2+5+1) ПСК..-Т.П.-НЕОТКРИВАЄТ ГРАФ РЕДАКТОР НА КОМПЕ((( проверите немогу((
Program lab3;
Uses Graph;
const
pi=3.14;
x1=-2*pi;
x2=2*pi;
F=3;
Var x,dx,u,y:real;
 
    mx,my,grD,grM,py,px,i,c,x0,y0:integer;
    arctn:real;
    s,s1:string;
 
function arccos(x:real):real;
begin
 
end;
 
Begin
grD:=detect;
Initgraph(grD,GrM,'');
X0:=320;  y0:=240;
mx:=30; my:=40;
Setlinestyle(0,0,9);
Line(0,y0,630,y0);
Line(x0,10,x0,470);
Setlinestyle(1,0,0);
For i:=1 to 9 do
{Koordunatna reshitka}
begin
Line(10,y0-i*40,630,y0-i*40);
Line(10,y0+i*40,630,y0+i*40);
Line(x0+i*40,10,x0+i*40,470);
Line(x0-i*40,10,x0-i*40,470);
Str(i*f,s);
Str(-i*f,s1);
OuttextXY(320+i*40,230,s);
OuttextXY(320-i*40,230,s1);
OuttextXY(324,240+i*40,s1);
OuttextXY(324,240-i*40,s);
end;
{Grafik}
dx:=0.001;
x:=x1;
while (x<x2) do
begin
 
y:=;
 
   px:=x0+round(x*mx);
   py:=240-((y0+Round(y*my/f))-240);
   Putpixel(px,py,13);
   x:=x+dx
end;
 
readln;
end.

Всего записей: 19 | Зарегистр. 27-05-2007 | Отправлено: 14:46 26-09-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