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

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

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

Всего записей: 9 | Зарегистр. 17-12-2008 | Отправлено: 23:47 14-01-2009
yakostik

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
a008888
Хорошее решение но массив помоему боле правильно было организовавать через ссылки по адресу, а то вдруг в строке больеш чем 255 слов.

Всего записей: 408 | Зарегистр. 30-03-2006 | Отправлено: 23:56 14-01-2009
oksannna

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не могу до конца осилить задачку. Помогите советом, пожалуйста! Надо создать программу, которая для каждой страны выводить название, количество населения, площадь, число школ, вузов и больниц и выводит на печать название страны с самой большой плотностью населения ( это знач надо количество населения делить на площадь), а также число школ и вузов в этой стране.  
 
Не знаю, как найти самое большое значение в поле после деления полей People и Square. Вот что написала:
 
Program Krainu;
 type   rec=record
    nazvanie: string[10];
    people: integer;
    square: real;
    schools: integer;
    institutes: integer;
    hospitals: integer;
    gustina_naselenia: real;
          end;
const n=3;
          var i: integer;
                max: real;
                m: arrey [1..n] of rec;
uses Srt, Printer;
           begin for i:=1 to n do
    writeln ('vvedite nazvanie stranu N, 'i',:');
    readln (m[i].nazvanie);
    writeln ('vvedite  kolichestvo naselenia:');
    readln (m[i].people);
    writeln ('vvedite ploshad stranu');
    readln (m[i].square);
    writeln ('vvedite kolichestvo shkol');
    readln (m[i].schools);
    writeln ('vvedite  kolichestvo institytov');
    readln (m[i].institytes);
    writeln ('vvedite kolichestvo bolnits');
    readln (m[i].hospitals);
            end {for};
                         begin for i:=1 to n do
        writeln ('nazvanie        :'.nazvanie);
        writeln ('naselenie        :'.people);
        writeln ('ploshad        :'.square);
        writeln ('N shkol        :'.schools);
        writeln ('N institytov                     :'.institytes);
        writeln (N bolnits        :'.hospitals);
                          end {for};
              begin
                      gustina_naselenia.rec:=people.rec/square.rec;
                           
    

Всего записей: 9 | Зарегистр. 17-12-2008 | Отправлено: 00:39 15-01-2009
vpcsk

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Во время решения задачи возник вопрос:
В общем уравнении прямой на плоскости ax+by+c=0, каким образом определить совпадают и параллельны ли прямые и как узнать, что прямые пересекаются в точке?  
Буду очень благодарен за ответ или ссылку, где про данные вопросы можно прочитать.  
До этого ничего толкового не нагуглил.

Всего записей: 10 | Зарегистр. 05-11-2008 | Отправлено: 00:53 15-01-2009
a008888



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vpcsk
Ну ты даёшь. Это в 1 классе рассказывают. уики    
 
 
Добавлено:
Пересекаются в точке, если условие параллельности не выполняется. Совпадают, если соответствующие коэффициенты равны.

----------
«...своей судьбою люди правят,
Не звезды, милый Брут ...».
Шекспир, «Юлий Цезарь», Акт I

Всего записей: 1112 | Зарегистр. 09-11-2007 | Отправлено: 01:21 15-01-2009
SERGE_BLIZNUK

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

Цитата:
Хорошее решение но массив помоему боле правильно было организовавать через ссылки по адресу, а то вдруг в строке больеш чем 255 слов.

yakostik, шутить изволите?!
Вы обратили внимание на то, в каком разделе мы находимся?  
  "Задачи на Turbo Pascal 7.0"
А в Turbo Pascal длина строки НЕ МОЖЕТ БЫТЬ больше 255! Не при каких условиях!
 

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 11:31 15-01-2009
a008888



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

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

http://paste.org.ru/?lsmgiz
Для вывода на принтер Pascal-программы в Windows используйте утилиту SPrint, автором которой является участник нашего форума.
http://forum.ru-board.com/topic.cgi?forum=5&topic=9340

Всего записей: 1112 | Зарегистр. 09-11-2007 | Отправлено: 21:27 15-01-2009
yakostik

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SERGE_BLIZNUK
Да сори зарапортовался ступил как говорится
 
a008888
Приношу извенения был не прав.
 
oksannna
 
Начало конечно более мение правильное  
А вот эта комбиначия вообще интерестна

Цитата:
writeln ('vvedite nazvanie stranu N, 'i',:');

 
Вообщем решения твоей задачки примерно вот такое:
Решение
 

Всего записей: 408 | Зарегистр. 30-03-2006 | Отправлено: 21:47 15-01-2009
oksannna

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

Всего записей: 9 | Зарегистр. 17-12-2008 | Отправлено: 20:18 17-01-2009
pingvinyatko

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Прощу помощи в решении задачи.
Тема "Множества", но реализовать надо с использованием файлов (к сожалению, с файлами умею работать только со строками и записями).
Также в задаче используется перечисляемый тип.
 
В озере водится несколько видов рыб. Три рыбака поймали рыб, представляющих некоторые из имеющихся видов. Определить: какие виды рыб есть у каждого рыбака, какие рыбы есть в озере, но их не выловил ни один из рыбаков (использовать перечисляемый тип).  
 
Если не использовать файлы, то все очень просто. Если бы не перечисляемый тип, то было бы еще проще. Поскольку это прототип, то вывод не настроен.  
 
program zadacha31;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
type fish=(ersh, okun, chebak, karas, karp, schuka, lesch); //виды рыб
people=set of fish;
 
var r1,r2,r3,ro,ru:people; i:fish;
begin
  r1:=[okun, schuka];    //улов 1-ого рыбака
  r2:=[okun, schuka, chebak]; //улов 2-ого рыбака
  r3:=[okun, schuka, lesch, ersh]; //улов 3-его рыбака
  for i:=ersh to lesch do
  begin
  if (i in r1) and (i in r2) and (i in r3) then  //одинаковые рыбы в улове
    ro:=ro+[i];
  if (not (i in r1)) and (not (i in r2)) and (not (i in r3)) then  //никто не поймал таких рыб
    ru:=ru+[i];
  end;
  readln;
end.
 
В файл необходимо записать или начиная с начальных условий (уловы трех рыбаков), или начиная с получения двух множеств в результате.
Затем нужно из файла прочитать содержимое и в первом случае выполнить проверку, записать новые множества, а потом прочитать новые множества и вывести их на экран; во втором случае только ограничиться чтением новых множеств и их выводом.
 
Заранее благодарен за помощь

Всего записей: 5 | Зарегистр. 19-10-2008 | Отправлено: 18:06 18-01-2009
a008888



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pingvinyatko
http://paste.org.ru/?cuk6cp
В I варианте слишком много однотипных операций. Приведён вариант II. Вообще, в условии не сказано про возможные варианты и их количество.
После прогона программы на винчестере (скорее всего там же, где и файл *.pas программы) появится файл aaaa. Его можно открыть в любом просмотрщике, но увидеть что-то удобочитаемое не выйдет. Дело в том, что типизированные файлы (такие, как в данном случае file1 и aaaa) состоят из машинных представлений значений переменных - двоичный внутренний формат.

Всего записей: 1112 | Зарегистр. 09-11-2007 | Отправлено: 14:44 19-01-2009
oksannna

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Списибо большое всем учасникам форума за помощь! Здала программирование на 5, и главное, сама кое в чем расчехлилась. Даже интересно стало

Всего записей: 9 | Зарегистр. 17-12-2008 | Отправлено: 14:44 20-01-2009
Inviseble

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята не знаю как быть, но прошу помочь в решении этих 3 задач:
 
1)Проверить, имеется ли в заданном тексте баланс открывающих и закрывающих скобок.
 
2)Запись(Сотрудник).Поле(ФИО,Должность,Дети).Программа должна выполнять действия: ввод/удаление записи по выбору, редактирования любой записи и поля, сортировка по любому полю.  
 
3)Выполнить на ЭВМ программу, использующую подпрограмму-процедуру.  
Условие задачи:
Вычислить Z=S1+S2/K1*K2   где S1 и K1 – сумма и количество положительных элементов массива X(N); S2 и K2 – сумма и количество положительных элементов массива Y(M).
Примечание: M=<100;N=<100.
Заранее большое спасибо.

Всего записей: 5 | Зарегистр. 19-11-2008 | Отправлено: 23:48 20-01-2009 | Исправлено: Inviseble, 23:49 20-01-2009
a008888



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

Цитата:
1)Проверить, имеется ли в заданном тексте баланс открывающих и закрывающих скобок.

http://paste.org.ru/?v151fa
Уверен: наши толкования многозначного слова "текст" совпали .

Всего записей: 1112 | Зарегистр. 09-11-2007 | Отправлено: 04:00 21-01-2009
Mandor Sawall

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

Всего записей: 119 | Зарегистр. 20-03-2003 | Отправлено: 10:13 21-01-2009 | Исправлено: Mandor Sawall, 10:20 21-01-2009
a008888



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

Цитата:
1 ( 2 ) ) 3 ( 4 ( 5 )

Тока ша проверил (выделил>скопировал>вставил в aaaa.txt>сохранил последний): Баланс!
Не сильно это важно, для меня по крайней мере . А у Вас нормальный файл aaaa.txt? Не закрывая Turbo Pascal, загляните в aaaa.txt; может последняя скобка исчезла. Это напоминает происки вирусов, но тем не менее... Ну и конечно пошаговая отладка, при которой можно проконтролировать все переменные, в помощь.

Цитата:
По моему, две переменные здесь не нужны...

Согласен. Там много лишнего, как оказалось. И кодировка для скобок роли не играет.
http://paste.org.ru/?9prbeb

Всего записей: 1112 | Зарегистр. 09-11-2007 | Отправлено: 15:55 21-01-2009
kika riga

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
здраствуйте.помогите пожалуйста решить задачу в Turbo Pascale.ОЧЕНЬ ПРОШУ.
 
посредине черного экрана строка синего цвета бегущим справа на лево именем Вика.програма прекращает работу по нажатию любой клавиши

Всего записей: 3 | Зарегистр. 21-01-2009 | Отправлено: 20:09 21-01-2009 | Исправлено: kika riga, 20:16 21-01-2009
Mandor Sawall

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
a008888
Я, конечно, не русский, поетому пишу с очень много ошибок. Вы меня не поняли. Я имел ввиду, что для етот пример ваша программа считает, что скобки балансировани, хотя (по моему, конечно) они не такие, потому что для вторая ")" нет "(".
Для "полного" баланса нужно еще проверять для каждую ")" есть ли "(" (например, counter_clo > counter_op).

Всего записей: 119 | Зарегистр. 20-03-2003 | Отправлено: 09:22 22-01-2009
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mandor Sawall +1 я, например, Вас  сразу понял. :-)
 
a008888, вопрос в постановке задачи: я лично тоже считаю, что баланс скобок это не только банальный подсчёт равенства количества открывающихся д.б. равно количеству закрывающихся, но и закрыающая должна ОБЯЗАТЕЛЬНО закрыать открывшуюся! т.е. выражение (..(..)..) корректное, а выражение ..(..)..)..( - некорректное!!
p.s. а решается, кстати, подобная задача очень легко: простой перебор, если встретили открывающую скобку - увеличиваем счётчик на один, если встретили закрывающую скобку - то уменьшаем счётчик и СРАЗУ проверяем - если он стал меньше нуля - всё, баланс нарушен, можно выдавать сообщение о неверном положении закрывающей скобки (позиция её, кстати, в индексе) и выходить из процедуры.
если дошли до конца строки, счётчик должен быть строго равен нулю - тогда есть баланс скобок.
 
 
 
Добавлено:
kika riga
Бегущая строка в DOS (текстовый режим, используется CRT) - исходный текст на Turbo Pascal

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 10:20 22-01-2009
NUB2008



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

Код:
 
program Vika;
uses Crt;
var
  x, y: integer;
  i : integer;
const
  s = 'Vika';
begin
  ClrScr;
  x:=17;
  i := 80 - Length(s);
  TextColor(1);
  while not keypressed do begin
    if i = 0 then i := 80 - Length(s)
    else dec(i, 1);
    GotoXY(i, x);
    Write(s);
    Write('    ');
  end; {while}
end.
 
 

Всего записей: 27 | Зарегистр. 26-12-2008 | Отправлено: 16:08 22-01-2009
Открыть новую тему     Написать ответ в эту тему

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