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

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет. Помогите пожалуйста решить одну задачу, т.к. я в этой теме файлы не совсем разбираюсь: "Составить базу данных об автомобилях прошлого года и вывести их в порядке убывания цен{марки, цены и прочее брать произвольные}". Очень прошу помочь!

Всего записей: 2 | Зарегистр. 28-12-2007 | Отправлено: 20:17 28-12-2007
maxuta

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
renesanko
Итерации цикла:
0) i = 0, t = 1, s = 0
1) i = 1, t = (-1) * 1 / 2 = -1/2, s = -1/2
2) i = 2, t = (-1) * (-1/2) / 3 = 1/6, s = -1/2 + 1/6
3) i = 3, t = (-1) * (1/6) / 4 = -1/24, s = -1/2 + 1/6 - 1/24
...
то есть s вычисляется правильно

Всего записей: 8 | Зарегистр. 24-02-2005 | Отправлено: 21:03 28-12-2007
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
maxuta молоток!  
 
renesanko
на первый взгляд был уверен, что решение неверное!!
Однако, ошибся.
вот, если интересно - вот решение  "в лоб"... результат совпадает, как не удивительно ;-)))
 
Veryn4ik
поищите здесь в теме - работа с типизированными файлами (откройте версию для печати, поищите по ключевому слову record)
 

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

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

Цитата:
Veryn4ik  
поищите здесь в теме - работа с типизированными файлами (откройте версию для печати, поищите по ключевому слову record)

что то всё равно не догоняю

Всего записей: 2 | Зарегистр. 28-12-2007 | Отправлено: 00:10 29-12-2007
Jokerjar79



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Veryn4ik, давай немного помогу
 
Объявляешь тип-структуру, которая будет хранить информацию об автомобиле
 

Код:
type
  Tavto = record
    marka: string[20]; {марка}
    country: string[20]; {страна-производитель}
    year: word; {год выпуска}
    cost: integer; {цена}
  end;

 
Далее - файл, содержащий записи:
 

Код:
var
  F: file of Tavto;

 
Наполнение базы:
 

Код:
var
  avt: Tavto;
  i,count: integer;
...
    writeln('Введите количество автомобилей в базе');
    readln(count);
    assign(F,'base.dat');
    rewrite(F);
    for i := 1 to count do
      begin
        writeln('Введите марку автомобиля №',i);
        readln(avt.marka);
        writeln('Введите страну-производитель автомобиля №',i);
        readln(avt.country);
        writeln('Введите год выпуска автомобиля №',i);
        readln(avt.year);
        writeln('Введите цену автомобиля №',i);
        readln(avt.cost);
        write(F,avt);
      end;
    close(F);
 

 
Далее реализуй считывание. Все достаточно аналогично. Объяви массив структур Tavto, считай записи из файла, отсортируй массив по cost, выведи результат. Можно в самом начале программы спросить пользователя, что он хочет сделать - заполнить базу или вывести содержимое.

Всего записей: 710 | Зарегистр. 08-09-2007 | Отправлено: 00:36 29-12-2007
CAHEK_KZ

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

Всего записей: 5 | Зарегистр. 28-12-2007 | Отправлено: 17:55 03-01-2008 | Исправлено: CAHEK_KZ, 19:18 03-01-2008
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
CAHEK_KZ
для начала, будь любезны, нажмите на своём посте кнопочку "Редактировать" (это сразу справа от вашего имени) и там вставьте два тэга:  перед вашим кодом [more][code]
<<тут ваша программа....>>
после
[/code][/more]
и на будущее - программу или большой текст учитесь прятать за тэгом MORE
иначе страница становится огромной и раздутой!!! ;-((

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Увы, помогая другу решить задачу (те написать программу) не смог преодолеть следующие затруднение:
 
Текст задачи - На участке имеется n станков, на которых нужно обработать m деталей . Время обработки каждой детали на каждом станке известно. Написать программу, проверяющую, можно ли найти такую деталь, время обработки которой на любом станке было бы минимальным.
 
Моё решение.
 
Алгоритм:
1. Создать двумерный массив (столбцы это станки, детали это строки).
2. Получить от пользователя время обработки детали, присвоить элемнту массива (столбец такой то, строка такая то) это значение.
3. Найти деталь с минимальными временями (ну незнаю как правилльно сказать) изготовления на станках.
 
Где пункты 1 и 2, не являються проблемой для детализацци и записи на паскале, а 3-ий пункт и есть затруднение.
 
Код программы:
(Нерабочей)
 
Подробнее...

Всего записей: 30 | Зарегистр. 25-12-2006 | Отправлено: 00:59 04-01-2008 | Исправлено: FMeat, 01:05 04-01-2008
FMeat

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Эм... Проблема решена. Правда на с++, но портировать это не сложно.

Всего записей: 30 | Зарегистр. 25-12-2006 | Отправлено: 13:52 04-01-2008
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
CAHEK_KZ
есть куча мелких недостатков (ну типа random(2) вернёт только 0 или 1, а потом проверяете a=1 или a=2 -  
ошибка в прорисовке меню - там в цикле вместо     write(menu[punkt]); надо     write(menu[i]);
много лишнего кода, злоупотребляешь begin.. end (это не ошибка, но лишние строки кода не всегда нужны
 
но, ГЛАВНОЕ!! я не могу понять, Вы пытаетесь сделать компьютерный аналог программы "Города"?!? Так где основа? Где основной алгоритм?!!! Это же не работает!!!
 
имхо, я вижу решение так:
Так,  
предварительно составляете список городов (пусть, как у Вас это будет файл "goroda.txt"). Лучше - отсортированных по алфавиту (тогда это можно будет использовать в коде, для эффективности...
Теперь программа.
1) Читаете ВЕСЬ файл в память (варианта два - либо через указатели - создание динамеческого списка, либо в массив)
  при этом надо предусмотреть либо двухмерный массив, либо массив из записей...
чтобы можно было отмечать те слова, которые уже были в игре.
что вроде такого
  array[1..1000] of CityRecordType
где  
 CityRecordType = record  
   Name : string[20];
   WasBefore : boolean;
 end;  
2) рисуете меню (если хотите)
3) при выборе пункта "Igra" - задаёте вопрос - кто ходит первый - человек или компьютер (ну, или выбираете это рандомно).
Если первый ход человека - вводим слово.
 Проверяем методом перебора, что введён именно город (а не Абракадабра )
  если не нашли в списке городов введённый человеком - ругаемся и либо выход с поражением человека, либо повторный ввод слова... (например, процедура FindCity(...)
если первый ход компьютера - берём слово из списка (массива) случайным образом.
Слово отметить как уже использованное.
4) Дальше - цикл - каждый ход компьютера  он должен взять введённое слово, от него последнюю букву и найти слово в списке на эту букву. Слово отметить как уже использованное. если не смог найти - выход с поражением компьютера
Каждый ход человека - ввёденное слово, компьютер:
a) проверяет, что оно начинается с буквы, которой закончилось предыдущее слово,
b) ищет его в списке слов ( процедура FindCity(...))
для завершение ввода (либо ввод человеком пустой строки, либо - какого-нибудь служебного слова, например "BYE" или "STOP"
 
Пишите программу. Вижу, что Вы хоть знаете, что такое Pascal. И пытаетесь решить задачу! Так держать!
Если будут вопросы по алгоритму и/или по реализации тех или иных шагов - спрашивайте, обязательно поможем (не я, так другие завсегдатаи клуба любителей ЯП Паскаль ))
 
p.s. да, чтобы были понятнее мои замечания по поводу Вашей программы, то вот,
Подкорректированный Ваш исходник
к сожалению, алгоритм самой игры там не переделан...  
Так что - Вам есть где развернуться
 
 
 

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 16:14 04-01-2008
CAHEK_KZ

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

Всего записей: 5 | Зарегистр. 28-12-2007 | Отправлено: 20:39 04-01-2008
RAVLLIAN



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

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



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

Всего записей: 136 | Зарегистр. 23-07-2005 | Отправлено: 00:52 05-01-2008
RAVLLIAN



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

Всего записей: 16 | Зарегистр. 04-01-2008 | Отправлено: 01:23 05-01-2008 | Исправлено: RAVLLIAN, 14:30 05-01-2008
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RAVLLIAN
1) в конце поста Вы ошиблись - надо писать [/more] а не /mode
2) при вводе данных вы не проверяете переполнение count > max_of_Students
3) ну, решение
 
 
Добавлено:
 


CAHEK_KZ

Цитата:
выложить как создать динамический список

программа чтения файла в динамический список  

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



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

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



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

Цитата:
[/q][q]
SERGE_BLIZNUK Вот так она должна выглядить?
 
 
 
Подробнее...

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SERGE_BLIZNUK спасибо тебе.

Всего записей: 5 | Зарегистр. 28-12-2007 | Отправлено: 14:50 05-01-2008
RoMiGoR



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Объясните, пожалуйста, в чем разница между объявлениями переменных:
 f:file of book  и  zb:book

Всего записей: 21 | Зарегистр. 24-11-2007 | Отправлено: 18:40 05-01-2008
SERGE_BLIZNUK

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

Цитата:
Вот так она должна выглядить

Вы меня пугаете!!!! Вот таким вот образом вы сразу показали, что Вы не сами писали эту программу и вообще, понятия не имеете, что такое структура программы... $-(((
Хотя бы могли найти те строчки, после которых многоточие и посмотреть чуть выше - там есть и ваш код...  
В любой программе на Паскале есть тело - это главный begin и соответствующий ему end. (именно с точкой на конце...)
ладно. не суть важно. Не хотите учиться, Ваше дело...
полностью код
 
CAHEK_KZ
да не за что... ;-)) Получилось?.. ;-)) Желаю удачи.  
 
RoMiGoR

Цитата:
в чем разница между объявлениями переменных:  
 f:file of book  и  zb:book

это разные типы данных
zb - это одна переменная, типа book (скорее всего, это тип record (запись) об одной книге. Например, zb.Author := 'Булгаков Михаил'
а - это файловая переменная, т.е. это хендл двоичного файла, который состоит из записей. Файл можно открыть и либо читать оттуда записи по одной   Read(f, zb)
либо писать туда записи по одной: Write(f,zb)

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 20:07 05-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