| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Интересные и занимательные задачи по программированию > Pascal |
| Автор: Рыжий 20.6.2005, 15:31 | ||||||||||
| Здравствуйте! Вот пару задач, для разминки мозгов Задача №1
Задача №2
Задача №3
Задача№4
Задача №5
|
| Автор: Pakshin A. S. 20.6.2005, 15:40 |
| Никак не въеду... Можно примеры (точнее тесты) программ? |
| Автор: Рыжий 20.6.2005, 15:47 | ||||||||||
Задача №6
Задача №7
Задача №8
Задача №9
Задача №10
Добавлено @ 15:49 Pakshin A. S. Каких именно?? И еще, давай постить тут только задачки |
| Автор: Pakshin A. S. 20.6.2005, 15:52 | ||
Вот вторая партия нравится, т. к. есть примеры работы программы... надо бы также оформить и первую партию задач... Ok... будем следить, чтобы никаких вопросов - только задачи... Просто предупреждать нужно... |
| Автор: SoWa 1.7.2005, 12:09 | ||
Вот решите:
|
| Автор: SoWa 12.9.2005, 16:15 |
| Классная задача: Дано N, на выход дать матрицу, представляющую из себя магический квадрат со стороной N или выдать, что решений нет. |
| Автор: EdgarJ 15.1.2006, 00:38 |
| Вот вам несколько задачь от меня. Эти задачи довались нам на школьной олимпиаде по информатики(программированию). Выполнить задания можно было на С, Turbo Pascal 7.0, QBasic. Звёздочки показывают сложность задачь. 1) * "Осадки" Вам даётсья задача зделать программу, которая работает с двумя текстовыми файламы (osadki.dat и osadki.rez) и делает при этом несколько вычислений. В 1. файл записаваетсья несколько строк. Первая строка содержит количество дней N, после которой следует количество строк (N). Начиная со второй строки в каждой записано два числа (отделены между собой пробелои) - температура воздуха и количество (в мм) осадков в день. Принимая во внимание, что 1) N <= 1000000 2) количество осадков не меньше 0 и не боль ше 100 мм 3) температура воздуха была между -50 и 50 градусами 4) если Температура меньше нуля падал снег,а во стольных случайах лил дождь в файле osadki.rez надо вывести два числа отделённых между собой побелами - общая количество снега за все дни и общее количество дождя. Пример osadki.dat 3 -1 30 0 3 20 15 osadki.rez 30 18 2)** "Дамы и кони" На шахматном столе находятсья дамы (ферзи они же королевы) и кони. Надо узнать количество дам которые под ударам как минимум одного коня и количество коней которые находятсья под ударам как минимум одного коня. Края шахматного стола обозначаютсья числами 1,2,3,4,5,6,7,8 и латинскими буквами a,b,c,d,e,f,g,h. Тем самым получаетсья, что у каждога поля есть обазначение - буква+число (а3, h2). Программа должна работать с двумя файлами - dk.dat и dk.rez. В первом файле в первой строке дано 2 числа (отделяемых пробелам) - количество дам(D) и коней(K) соответсвенно. В последующих строках D даны координаты дам, а после идут cтроки K с координатами коней. В файле dk.rez надо вывести два числа - количество дам, которые под ударам как минимум одного коня и количество коней, которые под ударам как минимум одной дамы. Количество фигур характиризуетсья так - 1<=K, D <= 64. Общее количество фигур не меньше 2 и не больше 64. Пример dk.dat 2 4 d3 d1 e1 c1 c2 h1 dk.rez 1 3 Я потом выложу задания 3., 4. и 5. уровней сложности. |
| Автор: Алиса 15.6.2006, 23:39 |
| Такие задачки предлагает, а грамотно писать так и не научился... |
| Автор: Рыжий 16.6.2006, 00:32 |
| Алиса, Уточняйте пожалуйста личность мерзавца... Или, Вы, имели ввиду ошибки такого плана: |
| Автор: Palladin 29.6.2006, 01:08 |
| А решения этих задач здесь постить ненадо??? или это чисто для себя, чтоб не забыть |
| Автор: dvamaster 15.7.2006, 12:27 | ||
Вот моя задачка:
|
| Автор: sgentstuff 17.7.2006, 11:34 |
| Предлагаю помимо задач выкладывать также и решения этих задач! Каждый, кто хочет решает задачу, выкладывает свое решение, чтобы можно было посмотреть чье решение эффективнее! В данный момент решаю вот эту задачу, пока не решил, давайте вместе ее решать, потом следующую и т.д., а то умирает эта тема! Составить алгоритм заполнения прямоугольной таблицы размером N*N целыми числами от 1 до N*N по спирали. Пример для N=5. 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 Добавлено @ 11:36 SoWa, RooR и все остальные подключайтесь! |
| Автор: sgentstuff 17.7.2006, 18:47 | ||
| Вобщем решил я эту задачку решение ниже. Предлагаю помимо задач выкладывать также и решения этих задач! Каждый, кто хочет решает задачу, выкладывает свое решение, чтобы можно было посмотреть чье решение эффективнее! В данный момент решаю вот эту задачу, пока не решил, давайте вместе ее решать, потом следующую и т.д., а то умирает эта тема! Составить алгоритм заполнения прямоугольной таблицы размером N*N целыми числами от 1 до N*N по спирали. Пример для N=5. 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 Ршение
Кто может предложить более изящное решение, чем с 5- циклами? |
| Автор: sgentstuff 18.7.2006, 07:20 |
| Задача r89_4 По кругу стоят N спортсменов с номерами от 1 до N. Начиная с какого-то человека, по кругу удаляется каждый k-ый спортсмен. После каждого удаления круг смыкается. Составить алгоритм определения последовательности номеров удаляемых спортсменов. |
| Автор: sgentstuff 19.7.2006, 06:52 | ||
Решение r89_4
|
| Автор: sgentstuff 19.7.2006, 07:20 |
| Задача r89_6 Составить алгоритм подсчета количества способов, которыми можно разменять рубль медными монетами (достоинством 1, 2, 3, 5 копеек). |
| Автор: AlexST 3.8.2006, 18:35 |
| Прям неинтересно как-то. Такие задачи решают в 5 классе по-моему. В эту коллекцию "разминалок" могу кинуть еще пару примеров (кому интересно) типа: Есть множество точек плоскости, соединить две из них отрезком так, чтобы с обоих сторон отрезка было равное количество точек. или Есть множество точек, составить из них несамопересекающуюся ломаную. Хоть чуток посложнее |
| Автор: Berd 5.8.2006, 01:16 |
| Для разнообразия тренирующихся. Где-то когда-то вычитал: ... "Составить программу, которая печатает сама себя. Программа должна иметь как можно меньший размер." ... |
| Автор: AlexST 5.8.2006, 01:24 |
| Чё-то, как-то не ясно задание. Если я его правильно понял, то в чём сложность? |
| Автор: DarlkElfTen 13.10.2006, 20:19 | ||||||||||||||
кхм...это же легко..=\ по моему это для тупых Добавлено @ 20:19
эта интереснее) |
| Автор: aved 15.10.2006, 11:17 | ||
| DarlkElfTen, ещё 10, 15, 20, 50. Задача
|
| Автор: AligatorV 5.12.2006, 21:08 |
| Ученые астрономы, сообщили правительство, что ровно через T секунд на планете Олимпиада начнется метеоритный дождь. Правительство планеты срочно начало эвакуацию людей и важного оборудования - телескопических установок. Для защиты телескопу его нужно транспортировать в специально отведенное место - хранилище. В одном хранилище может вместиться лишь один телескоп. Необходимо рассчитать максимальное количество телескопов которые можно успеть спрятать к началу метеоритного дождя. Входные данные (файл METEOR.DAT): В первой строке число T - количество секунд через которую метеориты упадут на планету. Во второй строке число N - количество телескопов. В третьей строке находится 2*N чисел - координаты телескопов (x, в) В четвертой строке число M - количество хранилищ. В пятой строке находится 2*M чисел - координаты хранилищ (x, в) В шестой строке число V - скорость транспортировки телескопов. Примечание: 0<T<1000000 ; 0<N,M<100 ; -30000 <= x,y <=30000 ; 0<V<1000 T, N, M, x, в - цели. Выходные даны: (файл METEOR.SOL): В единственную строку файла записать максимальное количество телескопов, которые могут быть спрятанные к началу падения метеоритов. Пример METEOR.DAT: 10 4 1 7 3 7 5 7 100 100 2 2 7 4 7 0.1 Пример METEOR.SOL: 2 |
| Автор: AligatorV 5.12.2006, 23:57 |
| Взрывное устройство, которое было заложено неизвестным террористом, имеет N - лампочек, и M - переключателей. Каждый переключатель изменяет состояние некоторых лампочек на противоположный. Для обезвреживания бомбы, необходимо выключить все лампочки. Напишите программу, которая спасет мир. Входные данные: (файл BOMBA.DAT): В первой строке число N. (0<N<=100) Во второй строке содержится N чисел, которые помечают состояние каждой лампочки (0 - выключенная, 1 - включенная). В третьей строке содержится число M. (0<M<=100) В каждом из следующих M строк содержится число K (количество лампочек состояние которых изменяет данный переключатель) и K чисел - номера соответствующих лампочек. Выходные даны: (файл BOMBA.SOL): Если бомбу обезвредить невозможно, запишите в исходный файл "NO" (без кавычек). Если возможно спасти мир, то в первую строку запишите "YES" (без кавычек), а во вторую строку запишите номера переключателей которые необходимо задействовать. Пример BOMBA.DAT: 5 0 1 1 0 1 4 3 2 3 4 3 1 4 5 2 4 5 2 2 4 |
| Автор: aved 9.12.2006, 10:52 |
| Дана матрица из нулей и единиц, найти количество областей состоящих из единиц ("пятна") Н-р: 1 1 1 0 1 1 0 0 0 0 1 0 1 1 1 0 1 1 0 0 0 1 1 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 1 0 0 0 1 1 1 0 0 1 1 1 0 0 1 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 Ответ: 3 |
| Автор: Kann 16.12.2006, 20:26 | ||||
|
| Автор: Strannik 28.1.2007, 19:58 | ||
Вот чуть более эффективная реализация:
П.С. Не компилировал и не тестировал, так что за описки не пинать а идея и так понятна... Добавлено @ 20:04 Ну и от меня задачка: На шахматной доске есть два коня, они делают ходы одновременно. Определить за какое минимальное кол-во ходов они могут встретиться на одной клетке. Если не могут - вывести "-1" input.txt a1 a3 ------- a1 a2 output.txt 1 ----- -1 Добавлено @ 20:07 Я вам этих задач столько напихать могу.... Если кому нечем мозги занять - обращайтесь, подыщем индивидуальную программу! |
| Автор: Michael_Rybak 30.1.2007, 19:34 |
| Расскажи откуда пихать будешь |
| Автор: Strannik 30.1.2007, 23:04 |
| У-у-у.... в сети столько этого добра (ну не мне ж тебе рассказывать). Плюс задачи которые точно мало кто видел (например наша район-область прошлых годов). Да и дело не в том что тут будет что-то эксклюзивное... Просто человек например не будет специально искать архивы задач, а здесь увидит парочку, может быть заинтересуется этим делом... |
| Автор: Michael_Rybak 30.1.2007, 23:39 |
| Ну я думал может ресурс какой-нить в мою коллекцию новый |
| Автор: volvo877 31.1.2007, 00:01 |
Вполне возможно, только ничего, что она результат неправильный выдавать будет? Интересная позиция... Только вот идея - она и так понятна, тебе не показалось? А ты почему-то очевидного не заметил... Условие еще раз перечитай, и посмотри, есть ли в матрице отдельно стоящие единицы. Так вот их учитывать не надо (судя по тому, что автор выделил только единицы, стоящие ГРУППОЙ), а твоя программа это будет делать... |
| Автор: Strannik 31.1.2007, 14:57 | ||
Одна единица - область состоящая из единиц. Я решил эту задачу и не несу ответственность за несоответствие примеров или некорректную постановку задачи. |
| Автор: WTF4XZ 22.7.2007, 13:40 |
| Ещё пример тупенькой задачки: На вход программе подаются строчные английскме буквы. Ввод этих символов заканчивается точкой. Требуется написать программу, которая будет печатать буквы, встречающиеся во входной последовательности, в порядке уменьшения частоты их встречаемости. Каждая буква должна быть распечатана один раз. Точка при этом не учитывается. Если какие-то буквы встречаются одинаковое количество раз, то они выводятся в алфавитном порядке. Пример входных данных: batat. Вывод: atb |
| Автор: sentry 24.7.2007, 19:39 | ||||
А это разве для любого N можно сделать?
Скорее провести прямую, а не отрезок. Решается через знак отклонения точки от прямой. Почти задача из той же серии чуть-чуть сложнее: Вводятся центры окружностей и их радиус, а также точки. Провести через точки прямую, пересекающую максимальное количество окружностей. |
| Автор: Aristarh_Dark 25.7.2007, 05:22 | ||||
Бейсик
|
| Автор: zusichka 10.12.2007, 00:25 |
| Квадратная матрица, симметричная относительно главной диагонали, заданная верхним треугольником в виде одномерного масива. Возобновить начальную матрицу и напечатать по строкам. как вам? .решите |
| Автор: mr.Anderson 16.12.2007, 16:17 | ||
Заинтересовался. Сча попробую сделать... |
| Автор: mr.Anderson 16.12.2007, 16:41 | ||
Гм. Решил. Но вряд ли решение оптимально, прошу подсказать более правильный вариант.
|
| Автор: klubnichka13 14.4.2009, 19:48 |
| привет!кто-нибудь помогите пожалста!решить задачу: Описать процедуру StringFileToText(Name) / TextFileToString(Name), преобразующую двоичный строковый в текстовый файл с именем Name, и текстовый в двоичный строковый файл с тем же именем. Используя эту процедуру, преобразовать два данных строковых/текстовых файла с именами Name1 и Name2 в текстовыйе/строковые. |
| Автор: Semmi 20.7.2009, 23:01 | ||||
создаем массив из (n+2)*(n+2) элементов заполненый след образом: пример для n=3 00000 0***0 0***0 0***0 00000 и начиная с элемета [2,2] заполняем массив числами 1 до n^2. как только встретили 0 или НЕ *, то меняем направление заполнения. в итоге один цикл от 1 до n^2 |
| Автор: fukusu 29.1.2010, 12:00 | ||||||
Собственно не совсем паскаль, но сути это не меняет. Вот решение с одним циклом, причем для случая, когда не квадрат, а прямоугольник (но для квадрата тоже работает
Собственно, считаю решение более изящным |
| Автор: Uliya20 1.6.2010, 22:05 |
Модератор: Сообщение скрыто. |
| Автор: LoveMeCozImBLONDE 1.6.2010, 23:25 |
Модератор: Сообщение скрыто. |
| Автор: jtxstyle 13.11.2010, 22:13 |
| |