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

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RoMiGoR
zb:book - это обявление переменной типа book, а
f: file of book - объявление файла с набором данных, каждым из элементов которого является запись типа book.
Т.е. :
1.zb- одна запись;
2.f - файл таких записей.
--
Опередили.
 

Всего записей: 2391 | Зарегистр. 24-08-2007 | Отправлено: 20:09 05-01-2008 | Исправлено: ymg2000, 20:12 05-01-2008
RAVLLIAN



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
SERGE_BLIZNUK Спасибо! Действительно эту программу делал почти не я, мне помогали! Я просто только начал учиться, отстал от группы по болезни, мрого пропустил, а вот теперь тяжело догнать! А у меня тут вопрос возник что такое IOResult<>0? Просто когда я программу запускаю он на эту строчку ругается!

Всего записей: 16 | Зарегистр. 04-01-2008 | Отправлено: 21:12 05-01-2008
TankMan



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Скажите - решение задачи нормально? - "Составьте программу, проверяющую, верно ли утверждение, что сумма цифр введенного вами целого числа, делиться на 5."
 

Код:
var x,y,z,i:integer;
begin
Write('Vvedite celoe chislo :');
ReadLn(i); //Maksimalnoe chislo ogranicheno razmerom "integer" 32768
while i <> 0 do
begin
     y:=y+(i mod 10);
     i:=i div 10;
end;
if y mod 5 = 0 then
WriteLn('Summa cifr vashego chisla delitsya na 5')
else WriteLn('Summa cifr vashego chisla ne delitsya na 5');

Всего записей: 599 | Зарегистр. 01-06-2002 | Отправлено: 21:17 05-01-2008
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TankMan
Цитата:
 решение задачи нормально? - "Составьте программу, проверяющую, верно ли утверждение, что сумма цифр введенного вами целого числа, делиться на 5

нормально. только один нюансик. вначале программы переменную. в которой будет сумма нужно проиницилизировать, однако:
y:=0;
 
RAVLLIAN

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

Цитата:
 А у меня тут вопрос возник что такое IOResult<>0? Просто когда я программу запускаю он на эту строчку ругается!

{$I-} - это выключаем обработку ошибок ввода-вывода. чтобы, если файла нет, Reset(f) не дало runtime error... в этом случае ошибка не выдаётся, но она записывается в системную переменную. функция IOResult возращает значение ошибки. Если она равно нулю, значит, ошибки не было, и, следовательно, файл существует (раз он  без ошибок открылся ;))) А раз не равно нулю - значит файла нет!
Кстати, очень рекомендую, пользоваться клавишами F1 и, если используется системная функция/процедура/ключевое слово - стать на это слово и нажать Ctrl-F1 - тогда справка будет по этому слову.
А какая конретно ошибка у вас выдаётся?!!! При компиляции программы? Или когда уже запускаете на выполнение?..  
Совет. Если совсем не удасться победить эту ошибку. Тогда удаляйте ВЕСЬ код по созданию (записи) файла - т.е. оставляйте только код, который читает данные из файла.
А отдельно сделайте программу по записи файла...
Ещё можно проверку сделать через FindFile... написать?...
дерзайте, и всё получится!

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 22:17 05-01-2008
RAVLLIAN



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
SERGE_BLIZNUK
он ругается при компиляции! а можно проверку через FindFile? Можете посоветовать какую-нибудь литературу. по которой можно выучиться? Просто желание огромное, но возможностей нет!!!!

Всего записей: 16 | Зарегистр. 04-01-2008 | Отправлено: 22:50 05-01-2008
SERGE_BLIZNUK

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

Цитата:
он ругается при компиляции

не... ну так не пойдёт... что значит - "ругается"???? пишет "Ошибка ерш #0001! - Мать вашу за ногу! Не буду эту строчку компилировать!!" ?? или как?... БУКВАЛЬНО текст ошибки можно?!
вплоть до скриншотов!!
 
а по поводу литературы-книжек.. то её ПОЛНО... просто поищите..
вот, например, здесь - Электронные книги Pasсal-RU  
 
процедура проверки сущестования файла - вот, целых две - Подробнее...
Удачи.
 

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 00:19 06-01-2008
RAVLLIAN



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
SERGE_BLIZNUK  
 
Извините! Спасибо Вам большое за помощь и зато, что возились со мной балбесом!!!

Всего записей: 16 | Зарегистр. 04-01-2008 | Отправлено: 01:16 06-01-2008
TankMan



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Жаль, конечно что не помогли, ведь задачи то типовые а в топике решения нет.
Ну хотябы оцените...
 
"Напишите программу, которая в заданном тексте меняет слово "один" на слово "пять" "
code
Может всетаки есть более элегантное решение? В Delphi я бы сделал проще, там то функциональнее будут функции текстовые. А тут не знаю даже.
 
и
Дано натуральное n. Вычислить : 1/11 + 1/22 + ... + 1/nn.  
 
code
Но что-то меня сомнения гложат...
 
и  
 
"Составьте программу, упорядочивающую по возрастанию элементы каждого столбца матрицы размером m*n. "
code

Всего записей: 599 | Зарегистр. 01-06-2002 | Отправлено: 02:27 06-01-2008 | Исправлено: TankMan, 02:56 06-01-2008
SERGE_BLIZNUK

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

Цитата:
конечно что не помогли, ведь задачи то типовые а в топике решения нет.

в топике решения есть.. Если не точь-в точь, то, по крайней мере, похожие... Уж сортировка матриц тут уж точно на зубах навязла....
 
>Напишите программу, которая в заданном тексте меняет слово "один" на слово "пять" "  
Ваше решение, конечно, рабочее, НО:
1) чего вас понесло в Pchar ?! чем Вас старый добрый string не удовлетворил?!?!
и, кстати, из-за PChar (strpos) потребовалось подключать unit Strings
2) Есть ГРУБАЯ ошибка - вы не проверяете, что подстрока присутствует... при этом i становится отрицательным и почему не выдаётся ошибка - Бог знает...  
2) в условии задачи не уточнено - менять только одно вхождение слова или все...
я бы предложил такой вариант
 

Цитата:
"Составьте программу, упорядочивающую по возрастанию элементы каждого столбца матрицы размером m*n. "  

ну. тут всё путём. Один малюсенький нюансик.. алгоритм сортировки чуть-чуть неоптимально реализован - самый большой элемент в столбце после первого прохода цикла по К становится самым нижним... его уже трогать не надо, и на следующем шаге - предыдущий уже можно не проверять... Это не ошибка - просто лишние проходы по столбцу... я рекоменду изменить цикл по i до n-k вот так:
Код:
 
for j:=1 to m do
  for k:=1 to n-1 do
    for i:=1 to n-k do

 
 

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 09:53 06-01-2008
mukca



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
задача.  
написать програму которая бы раскрашивала граф с использованием независемого множества вершин.
 
случаем не у кого не завалалась/? хотя б процедурка.

----------
Пусть физики думают, что метр -- это мера длины. Мы-то знаем, насколько тяжелыми бывают большие файлы...

Всего записей: 3606 | Зарегистр. 07-10-2004 | Отправлено: 12:54 06-01-2008
TankMan



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
SERGE_BLIZNUK
Да вот в том то и дело, что непосредственно сортировки элементов столбцов по убыванию или возрастанию, я не нашел, есть сортировка столбцов/строк на убывание по сореджащемуся максимальному элементу, но это даже зауши не притянешь. Вообще ясно понятно, что все это элементарно... но вот именно такие задачи встречаются очень часто, а ренения не нашел. Просто даже писать лень такую чушь = время на нее тратить - а если есть - скопировал да вставил Вот теперь - Есть
 
1) В Pchar меня понесло, потому как strpos, со String работать нехочет, а приведение типа PChar(string) не работает...(а ссылками заморачиваться в таком случае, я думаю не стоит (рассказывать о работе этой программы, не мне)....ТЬФУ посмотрел ваш вариент и понял свою ошибку. Я не знал о существовании функции Pos (ну как не знал?, = забыл) в дельфях я пользуюсь ansistrpos она работает со строками.
а 2) и 3) - это да, спасибо за замечание, это следствие того, что делал 15 задачек часа 4-5, на неудобной клаве на неудобном кресле, да еще и в TP, а я на нем писал что-то последний раз, где-то в году 2000-2001-м, вот и пропустил такую глупую ошибку. Спасибо. (Реально не думал, что из-за того что клава маленького формата (как на ноуте), с плоскими клавишами, да еще и с маленьким бекспейсом, следом за которым идет кнопка "home" настолько сильно напрягает и приводит к усталости...)
 
По третьей задаче - спасибо действительно не подумал об этом.
 
А на счет второй задачи, не подскажете? Как там, все нормально?
 
 

Всего записей: 599 | Зарегистр. 01-06-2002 | Отправлено: 15:56 06-01-2008 | Исправлено: TankMan, 16:03 06-01-2008
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TankMan
Цитата:
А на счет второй задачи, не подскажете? Как там, все нормально?
ну раз ничего не сказал, значит всё нормально (имхо, разумеется ;-)) ;-)))

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 19:08 06-01-2008
RAVLLIAN



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
SERGE_BLIZNUK
 Можете подсказать как решить задачу?

Всего записей: 16 | Зарегистр. 04-01-2008 | Отправлено: 02:24 07-01-2008
OCUHA

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Прошу! Прошу! Прошу!    Пожалуйста полное решение.  
 
Составить прорамму расчета средней арифметической взвешенной по формуле:
 
&#256;=&#8721;Af/&#8721;f
 
Добавлено:
НЕ Х (который с палкой вверху) = сумма xf / на сумму f (предыдушая
Цитата:
&#256;=&#8721;Af/&#8721;f
)написанны в ворде
 

Всего записей: 1 | Зарегистр. 07-01-2008 | Отправлено: 15:25 07-01-2008
inner

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OCUHA
ахтунг.
 
Добавлено:
OCUHA
 
program Project1;
 
uses
  SysUtils;
 
var
  w : array [1..5] of integer; // массив весов
  x : array [1..5] of integer; // массив значений
  i    : integer;
  mx   : real;
  mw   : real;
begin
  w[1] := 1;
  w[2] := 1;
  w[3] := 1;
  w[4] := 1;
  w[5] := 2; //Сумма весов = 6
 
  x[1] := 1;
  x[2] := 2;
  x[3] := 3;
  x[4] := 4;
  x[5] := 5; //Сумма Взвешенных значений = 20
 
  mx := 0;
  mw := 0;
  for i := 1 to 5 do
  begin
    mx := mx + w[i]*x[i]; // Считаем сумму Взвешенных значений
    mw := mw + w[i];      // Считаем сумму весов
  end;
  mx := mx / mw; // Среднее взвешенное 20/6 = 3.3333333
  writeln('result: ' + FloatToStr(mx)); // Выводим на экран ответ
  ReadLn;
 
end.

Всего записей: 97 | Зарегистр. 10-12-2005 | Отправлено: 19:41 07-01-2008
lonelyguy

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
народ выручайте, на носу сессия помогите с одной задачкой  
"""По среднему балу результатов экзаменационной сессии составить ведомость выплаты стипендии 20-ти студентам, не имеющим троек. Студенту имеющему хорошие и отличные оценки начисляется 40 рублей, а студенту отличнику на 25% больше. Ведомомть должна содержать номер студента в списке и размер его степендии.
Оценки = 5   4,3  4  4,5   4  5  5   4,75   5  4   4,9   5   4,75  4,25   4   5   4,25   5  5  4"""
 
буду премного благодарен ))

Всего записей: 4 | Зарегистр. 07-01-2008 | Отправлено: 21:59 07-01-2008
inner

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

Всего записей: 97 | Зарегистр. 10-12-2005 | Отправлено: 22:25 07-01-2008
lonelyguy

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[q][/q]
ну да..
и вывести в формате  
"№студента"  "Размер степухи"
............................
 
 
зы.причем тут школа О_о

Всего записей: 4 | Зарегистр. 07-01-2008 | Отправлено: 22:31 07-01-2008
inner

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lonelyguy
 
Ок. Расставь исходные оценки сам. И спроси еще что-нибудь. Мне нужны посты.
 
program Project1;
 
uses
  SysUtils;
var
  students    : array [1..20] of real;
  i           : integer;
 
begin
  students[1] := 5;
  students[2] := 4.3;
  students[3] := 4;
  students[4] := 4.5;
  students[5] := 4;
  students[6] := 5;
  students[7] := 5;
  students[8] := 4.75;
  students[9] := 5;
  students[10] := 4;
  students[11] := 5;
  students[12] := 5;
  students[13] := 5;
  students[14] := 5;
  students[15] := 5;
  students[16] := 3;
  students[17] := 2.9;
  students[18] := 3.9;
  students[19] := 5;
  students[20] := 5;
 
  for i := 1 to 20 do
  begin
    if students[i] >= 4 then
      if students[i] = 5 then
        students[i] := 40 * 1.25
      else
        students[i] := 40
    else
      students[i] := 0;
  end;
 
  for i := 1 to 20 do
  begin
    writeln('Student # ' + IntToStr(i) + ' getting: ' + FloatToStr(students[i]) + ' RUR');
  end;
  readln;
 
end.

Всего записей: 97 | Зарегистр. 10-12-2005 | Отправлено: 22:37 07-01-2008
lonelyguy

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ну ок)) можеш вот это както по-доходчивей написать?

Цитата:
writeln('Student # ' + IntToStr(i) + ' getting: ' + FloatToStr(students[i]) + ' RUR');  


Всего записей: 4 | Зарегистр. 07-01-2008 | Отправлено: 22:49 07-01-2008
Открыть новую тему     Написать ответ в эту тему

Страницы: 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