ЗАДАЧИ
problems.ru |
О проекте
|
Об авторах
|
Справочник
Каталог по темам | по источникам | |
|
![]()
главы:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
Версия для печати
Убрать все задачи Дан массив. Требуется удалить из него элемент, стоящий на месте номер B, сдвинув все последующие элементы влево. Входные данные Во входном файле записано сначала число N - количество элементов массива (2<=N<=100), затем N чисел из диапазона Integer - элементы массива, а затем число B (1<=B<=N). Выходные данные В выходной файл выведите N-1 число - элементы массива с удаленным B-м элементом. Примечание Вы должны удалить элемент непосредственно из массива, а не сделать вид при выводе данных, что у вас такого элемента нет. Также вы не должны для этого заводить в программе дополнительный массив. То есть ввод данных осуществляется следующим фрагментом: read(fi,n); for i:=1 to n do read(fi,a[i]); read(fi,b); А вывод - следующим: for i:=1 to n-1 do write(fo,a[i],' '); Необходимые фрагменты вы можете найти в файле P128.PAS Пример входного файла 5 1 3 5 6 7 2 Пример выходного файла 1 5 6 7 Текст программы P128.PAS const nmax=100; var a:array[1..nmax] of integer; n:integer; i:integer; b:integer; fi,fo:text; begin assign(fi,'input.txt'); reset(fi); assign(fo,'output.txt'); rewrite(fo); read(fi,n); for i:=1 to n do read(fi,a[i]); read(fi,b); {Вы должны писать здесь} for i:=1 to n-1 do write(fo,a[i],' '); close(fi); close(fo); end. ![]() ![]() Банки, пытаясь увеличить свою прибыль, попросили инженеров разработать сканер, который автоматически считывает номера чеков. Известно, что любой чек имеет девятизначный номер и для каждого номера чека выполняется следующее условие: (d1 +2d2 + ... +9d9) mod 11 = 0, где di равно i-й цифре номера (цифры нумеруются справа налево: d9d8d7d6d5d4d3d2d1). Сканер, считывая номер, преобразовывает горизонтальные и вертикальные линии в символы | (ASCII-код 124) и _ (ASCII-код 95) соответственно. В результате сканирования выдается картинка, составленная из этих символов и пробелов. Пример правильного изображения цифр после сканирования приведен в примере входного файла. К сожалению, иногда сканер допускает ошибки, и некоторые линии могут
пропадать. Вы должны написать программу, которая восстанавливает исходный
номер чека, считая выполненными следующие условия: _ _ _ _ _ _ _ | _| _||_||_ |_ ||_||_| | |_ _| | _||_| ||_| _| Пример выходного файла 123456789 ![]() ![]() |
Страница: << 6 7 8 9 10 11 12 >> [Всего задач: 67]
Входные данные В первой строке входного файла содержится целое число N (1 ≤ N ≤ 30), в каждой следующих N строк – координаты левого нижнего угла (x, y) очередного из квадратиков (0 ≤ x, y ≤ 95). Выходные данные Выведите в выходной файл координаты точек искомого пути, в которых меняется направление движения (включая начальную и конечную точки). Порядок точек в выходном файле должен соответствовать порядку точек в пути. Пример входного файла 5 5 5 5 15 15 10 15 20 90 90 Пример выходного файла 0 0 5 10 20 20 95 90 100 100
Любая булева функция однозначно задается своей таблицей истинности, в которой для каждого возможного набора значений аргументов указано значение функции. Например, x AND y – булева функция от двух аргументов. Ее таблица истинности выглядит так: Если договориться, что наборы значений аргументов в таблице располагаются в лексикографическом порядке, то функция AND однозначно задается третьим столбцом таблицы – строкой 0001. Аналогично, каждой булевой функции от k аргументов можно поставить в соответствие строку из нулей и единиц длины 2k. Задан набор из N+1 булевой функции (f, f1, f2, ..., fN). Напишите программу,
которая определяет, можно ли функцию f выразить через функции f1, f2, ..., fN, и
если такие представления возможны, то находит кратчайшее по числу символов
среди них.
Моделью такого предложения (не удовлетворяющей лишь свойству
правдивости) может служить такой текст:
Сканер, считывая номер, преобразовывает горизонтальные и вертикальные линии в символы | (ASCII-код 124) и _ (ASCII-код 95) соответственно. В результате сканирования выдается картинка, составленная из этих символов и пробелов. Пример правильного изображения цифр после сканирования приведен в примере входного файла. К сожалению, иногда сканер допускает ошибки, и некоторые линии могут
пропадать. Вы должны написать программу, которая восстанавливает исходный
номер чека, считая выполненными следующие условия: _ _ _ _ _ _ _ | _| _||_||_ |_ ||_||_| | |_ _| | _||_| ||_| _| Пример выходного файла 123456789
<Дата> <Дата> + <Сдвиг> <Дата> - <Сдвиг> <Дата> - <Дата> Здесь <Дата> задается в одном из следующих трех форматов: А) дд.мм.гггг (например, 21.06.1998 ). В этой записи день и месяц задаются в точности двумя десятичными цифрами, год – ровно четырьмя. Б) д месяца г года (например, 21 июня 1998 года ). В этом формате могут присутствовать ведущие нули (например, 01 июня 198 года ). В) сегодня – текущая дата, установленная в компьютере. <Сдвиг> задается в виде [L лет ] [M месяцев ] [N недель ] [D дней ]. Квадратные скобки здесь означают, что некоторые из указанных четырех составных частей могут опускаться (но не все сразу). Слова «лет», «месяцев», «недель», «дней» склоняются по правилам русского языка: 1 год, 5 лет, 2 месяца, 5 месяцев и т.д. Значением выражений первых трех типов является дата. В случае
выражения первого типа значением является сама <Дата>. В случае выражений
второго и третьего типа вычисление искомой даты происходит следующим
образом: сначала прибавляется (либо вычитается) L лет, затем M месяцев, после
чего N недель и, наконец, D дней. Если в течение этого процесса получается
несуществующее число месяца, то берется последнее число этого месяца (см.
пример). Результатом выражения четвертого типа является количество дней
между двумя указанными датами.
Страница: << 6 7 8 9 10 11 12 >> [Всего задач: 67] |
© 2004-...
МЦНМО
(о копирайте)
|
Пишите нам
|
![]() |