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

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

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

Всего записей: 13 | Зарегистр. 22-12-2011 | Отправлено: 23:11 08-01-2012
dimitriy7



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

Цитата:
И в чем на этот раз проблема?

В том, что читать теперь надо из одного файла, а писать в другой. + глючный компилятор...
 
igorek5555555
Чем ошибки искать, проще оказалось старый рабочий исходник найти и подправить:
Подробнее...
PS
Используй
Код:
[more][/more]
, пожалуйста... А то читать невозможно

Всего записей: 2946 | Зарегистр. 09-10-2008 | Отправлено: 23:15 08-01-2012
Corsairs

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
CitromonZ
Значит, имеем такой критерий идентичности:
Массивы идентичны, если они составлены из одного и того же набора чисел?
Правильно?
 
И такой вопрос - на тем пишется это? На TP 7.0 или?
Так как, насколько я понимаю - процедура должна быть одна, но должна работать со всеми тремя массивами в различных комбинациях (по два массива)?

Всего записей: 569 | Зарегистр. 30-06-2006 | Отправлено: 23:20 08-01-2012
dimitriy7



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
igorek5555555
 
Еще раз:
Подробнее...
 
 

Цитата:
много лишнего и неподходящего  
там нет, все по делу. И как раз все 100% работало.

Цитата:
но результат масива выдает нули

Ни у кого не выдает, а у тебя вдруг выдает? Может, не в программе дело, а в недоразумении под названием Паскаль-АВС? Попробуй лучше FPC, что ли... Или обычный ТР из-под dosbox запусти...
 
И вообще,
Цитата:
ту прогу забанели
Кто забанил-то? Может, ему ассемблером написать, и пусть разбирается, прежде чем "банить"? (мне-то не сложно, а ему?)

Всего записей: 2946 | Зарегистр. 09-10-2008 | Отправлено: 23:22 08-01-2012 | Исправлено: dimitriy7, 23:32 08-01-2012
igorek5555555

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

Всего записей: 13 | Зарегистр. 22-12-2011 | Отправлено: 23:35 08-01-2012
dimitriy7



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
igorek5555555
Ну молодец, раз сам нашел. (массив M забыл заполнить перед записью?)
И все-таки, кто прогу принимал-то?

Всего записей: 2946 | Зарегистр. 09-10-2008 | Отправлено: 23:39 08-01-2012 | Исправлено: dimitriy7, 23:43 08-01-2012
igorek5555555

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

Всего записей: 13 | Зарегистр. 22-12-2011 | Отправлено: 23:58 08-01-2012
dimitriy7



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Corsairs
По поводу задачки для CitromonZ:
вот как лучше проверку на идентичность для массивов делать?  

Цитата:
реализуется несложно - через множества...  

у меня для сравнения двух массивов "через множества" получается какая-то монструозная конструкция типа
Подробнее...
 
Уверен, есть способ проще - подскажи? (кстати, по стандарту в множество вроде могут входить только однобайтные элементы, или я что-то попутал?...)
 
Вообще не проще ли в лоб как-то так проверять:
Подробнее...
правда в таком варианте ф-ция в 16-битной среде не сможет обсчитать массив вида array of longint ...

Всего записей: 2946 | Зарегистр. 09-10-2008 | Отправлено: 02:45 09-01-2012 | Исправлено: dimitriy7, 03:00 09-01-2012
Corsairs

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dimitriy7
Насколько я помню - то в TP 7.0 ограничение только на максимальное количество возможных элементов множества (т.е. не больше 256), но не на их тип (ну кроме действительных чисел).
Если как элементы массивов использовать нечетные числа от -255 до 255, то мы как раз и получим 256 возможных элементов...
Но тут многое зависит от возможного диапазона значений...
 
Так что наверное придется устраивать два цикла - и проверять элементы одного массива на наличие их во втором...

Всего записей: 569 | Зарегистр. 30-06-2006 | Отправлено: 12:29 09-01-2012 | Исправлено: Corsairs, 12:29 09-01-2012
igorek5555555

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

Цитата:
IOResult

Цитата:
SeekEof(f)
 

Цитата:
double

ну это я знаю хотя нам не обьясняли  
просто чуть облегчить прогу так как по сути я изучаю паскаль только 2 месяца(нам его преподают)  
 
 

Всего записей: 13 | Зарегистр. 22-12-2011 | Отправлено: 14:10 09-01-2012
dimitriy7



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Corsairs
 
Ясно.. а вот это:

Цитата:
ограничение только на максимальное количество возможных элементов множества (т.е. не больше 256),  

очень плохо... Диапазон-то нигде не оговорен! Представь себе конструкцию вроде array [-1000..1000] of integer, где ВСЕ элементы РАЗНЫЕ! Как это в множество запихнуть?
 
igorek5555555
Упростить-то можно, только тогда программа при некоторых начальных условиях может работать некорректно, или попросту вылетать с "runtime error"...
 
IOResult
if SeekEof(f) then
double
Еще по мелочам
Вопросы?

Всего записей: 2946 | Зарегистр. 09-10-2008 | Отправлено: 15:53 09-01-2012 | Исправлено: dimitriy7, 16:04 09-01-2012
igorek5555555

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dimitriy7
впринципе понятно но есть такой вопрос эта ведь програма не может считывать с файла например у меня на диске (пример H:\laba8.txt) создан файл Laba8 там записано 35 чисел она ведь неможет их считать? и записать ответ новый масив тудаже не заменяя предыдущии числа?

Всего записей: 13 | Зарегистр. 22-12-2011 | Отправлено: 16:13 09-01-2012
dimitriy7



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
igorek5555555
Эта - не может (пишет в новый файл), а предыдущая как раз могла дописать новый масив туда же, не заменяя предыдущие числа...
Или тебе надо, чтобы имя входного/выходного файлов вводилось вручную, а не было жестко зафиксировано?
Тогда сейчас подправлю... Имена входного и выходного файлов будешь вводить с клавиатуры. Если в качестве выхода укажешь исходный файл - будет просто дописывать, не заменяя.
 
Добавлено:
igorek5555555
 
Вот, держи:
Подробнее...
 
Как и обещал -
Цитата:
Имена входного и выходного файлов будешь вводить с клавиатуры. Если в качестве выхода укажешь исходный файл - будет просто дописывать, не заменяя.

Если твой файл создан правильно - т.е. в нем не меньше 35 чисел, разделенных пробелами (+ допускается перенос на новую строку), и нет никаких лишних недопустимых символов - то нормально прочитается... Только имя вводи полностью, вместе с путем.
 
PS
Имей в виду: TP7 под дос создает код, не допускающий пробелов в пути/имени файла. В FPC - пробелы допускает, но не понимает русских букв. Что твой компилятор сделает - неизвестно, так что постарайся обойтись без заковыристых имен файлов и путей к ним...

Всего записей: 2946 | Зарегистр. 09-10-2008 | Отправлено: 16:22 09-01-2012 | Исправлено: dimitriy7, 17:08 09-01-2012
Livw

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
даны С и D, Вычислить F(x), где х изменяется с от 1 до 5 с шагом 0,5.
 F(x)=(C+DX)(1+C)
 
вычислить S = 1) сумма F(x), если С>D
                       2) F(2;5), если C меньше или равно D

Всего записей: 4 | Зарегистр. 11-01-2012 | Отправлено: 23:47 11-01-2012 | Исправлено: Livw, 23:58 11-01-2012
Corsairs

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Livw
т.е. вывести таблицу вида x= (значение) и f(x)= (значение)?
а в чем собственно проблема то? в этой теме есть примеры решения (и не одно, насколько помню)... надо только подкорректировать - изменить начальное и конечное значения, и шаг... ну и формулу вычисления значения функции...
 
а вот с тем текстом, что ниже (что начинается со слова "вычислить") - тут требуется телепат и дешифровщик, так как непонятно, что же надо вычислять...

Всего записей: 569 | Зарегистр. 30-06-2006 | Отправлено: 00:07 12-01-2012
Livw

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Corsairs
 
во второй части задачи нужно рассчитать велечину S,которая зависит от F по приведенным функциям, т.е. при значениях С>D и С < или = D
 
 
 
вроде как задача на одномерный массив, но как его выразить не очень понятно

Всего записей: 4 | Зарегистр. 11-01-2012 | Отправлено: 00:24 12-01-2012 | Исправлено: Livw, 00:27 12-01-2012
Corsairs

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Livw
ну, теперь уже понятнее... в первом случае имеется в виду сумма F(x), где x изменяется от 1 до 5 с шагом 0,5 - я правильно понял?
F(2;5) - имеется в виду, что x равно 2,5? Или как понимать 2;5?
 
Это все в одной программе должно быть или надо две?
 
Ну, массив тут возможен, но нужен ли он?
Для вывода значений массив не обязателен, да и сумму тоже можно найти без массива...

Всего записей: 569 | Зарегистр. 30-06-2006 | Отправлено: 00:59 12-01-2012
Livw

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Corsairs
 
первое условие
Цитата:
сумма F(x), где x изменяется от 1 до 5 с шагом 0,5
именно такое
 
второе условие - вроде как значения x c 2 до 5 меняющиеся с шагом 0,5
 
все должно быть в одной проге.
 

Цитата:
Ну, массив тут возможен, но нужен ли он?

 
этот способ как раз мне в первую очередь предложили, потому что вроде как задание по теме массивов.
непонятно, как задать шаг 0,5

Всего записей: 4 | Зарегистр. 11-01-2012 | Отправлено: 01:13 12-01-2012
Corsairs

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Livw
Тогда стоит все-таки уточнить условие задачи...
 
Ну, если исходить из:
Цитата:
даны С и D, Вычислить F(x), где х изменяется с от 1 до 5 с шагом 0,5.
 F(x)=(C+DX)(1+C)  
- то тут возможны два массива - в первом массиве находятся значения xi, а во втором - F(xi)
Кстати, (C+DX)*(1+C) или (C+DX)/(1+C)?
 
Но вот вторая часть условия все-таки требует уточнения. (лучше все-таки уточнить, чтобы не потом не переделывать...)

Цитата:
непонятно, как задать шаг 0,5

А что тут непонятного? Вот:
Код:
x:=1;
h:=0.5;
while x<=5 do
 begin
  {тут - вычисление значения F(x)}
  x:=x+h;
 end;

Всего записей: 569 | Зарегистр. 30-06-2006 | Отправлено: 01:38 12-01-2012
Livw

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Corsairs
 
(C+DX)*(1+C) - вот так, да
 
в предыдущем посте напутал, во втором условии нужно найти  F(x), при этом значения х меняются с 2 до 5 все с тем же шагом 0,5

Всего записей: 4 | Зарегистр. 11-01-2012 | Отправлено: 01:50 12-01-2012
Открыть новую тему     Написать ответ в эту тему

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