Задачник Абрамян по программированию Решебник

      Комментарии к записи Задачник Абрамян по программированию Решебник отключены

Уважаемый гость, на данной странице Вам доступен материал по теме: Задачник Абрамян по программированию Решебник. Скачивание возможно на компьютер и телефон через торрент, а также сервер загрузок по ссылке ниже. Рекомендуем также другие статьи из категории «Решебники».

Задачник Абрамян по программированию Решебник.rar
Закачек 2899
Средняя скорость 3060 Kb/s
Скачать

Задачник Абрамян по программированию Решебник

Итак, с сегодняшнего дня мы начинаем вести новую рубрику: «Решение задач», в которой будем рассматривать задачи, взятые из сборника М.Э.Абрамяна «1000 ЗАДАЧ ПО ПРОГРАММИРОВАНИЮ».

Открыв задачник и прочитав аннотацию, Вы, скорее всего, озадачитесь тем, что данное пособие предназначено для студентов механико-математического, физического и экономического факультетов, но смею Вас заверить, что это весьма универсальная книга, которая подходит как студентам, так и школьникам. Возможно, задачи из первых разделов книги покажутся Вам простыми — в этом случае используйте наш разбор только для проверки своих решений; но если же по каким-либо причинам решить задачи Вы не в состоянии, то тогда присоединяйтесь к нам.

Begin1. Дана сторона квадрата a. Найти его периметр P = 4·a.

Прежде всего напомню, что для ввода и вывода информации, в Паскале используют следующие операторы:

  • Read (Readln) — ввод значений с клавиатуры;
  • Write (Writeln) — вывод результата (и вообще чего-либо) на экран.

Блок-схема

Таким образом, решение задачи становится очевидным.

Электронный задачник по программированию

Дата генерации PDF-документа: 26.10.2005.

° c М. Э. Абрамян (mabr@math.rsu.ru), 1998–2005

Электронный задачник Programming Taskbook предназначен для обучения программированию на языках Pascal, Visual Basic, C++, C#. Он содержит 1000 учебных заданий, охватывающих все основные разделы базового курса программирования: от скалярных типов и управляющих операторов до сложных структур данных и рекурсивных алгоритмов.

Версия 4.5 задачника Programming Taskbook реализована для следующих сред: Borland Pascal 7.0, Borland Delphi 3.0–7.0, Microsoft Visual Basic 5.0–6.0, Borland C++Builder 4.0–5.0, Microsoft Visual C++ 6.0, Microsoft Visual Studio .NET 2003 (языки Visual C++ 7.0, Visual Basic .NET и Visual C# .NET). Кроме того, задачник включен в учебную систему программирования Pascal ABC (автор С. С. Михалкович), образуя единый программный комплекс Pascal ABC & Programming Taskbook .

Задачник содержит следующие группы учебных заданий (в скобках указано количество заданий для каждой группы):

² Begin — ввод и вывод данных, оператор присваивания (40),

² Integer — целые числа (30),

² Boolean — логические выражения (40),

² If — условный оператор (30),

² Case — оператор выбора (20),

² For — цикл с параметром (40),

² While — цикл с условием (30),

² Series — последовательности (40),

² Proc — процедуры и функции (60),

² Minmax — минимумы и максимумы (30),

² Array — одномерные массивы (140),

² Matrix — двумерные массивы (матрицы) (100),

² String — символы и строки (70),

² File — двоичные файлы (90),

² Text — текстовые файлы (60),

² Param — составные типы данных в процедурах и функциях (70),

² Recur — рекурсия (30),

² Dynamic — динамические структуры данных (80).

Задачник Programming Taskbook предоставляет учащимся следующие возможности:

М. Э. Абрамян. Электронный задачник Programming Taskbook 4.5

² отображение на экране текста задания и связанных с ним данных;

² демонстрация правильных результатов для каждого задания;

² предоставление исходных данных программе учащегося;

² дополнительный контроль за операциями ввода-вывода;

² проверка правильности результатов, полученных программой;

² запись в особый файл результатов информации о каждом тестовом испытании программы;

² регистрация задания как выполненного после надлежащего количества успешных тестовых испытаний программы, проведенных подряд.

Использование электронного задачника существенно ускоряет процесс выполнения заданий, так как избавляет учащегося от дополнительных усилий по организации ввода-вывода, что особенно удобно при обработке массивов, строк, файлов и динамических структур. Предоставляя учащемуся готовые исходные данные, задачник акцентирует его внимание на разработке и программной реализации алгоритма решения заданий, причем разнообразие исходных данных обеспечивает надежное тестирование предложенного алгоритма.

PDF-версия задачника Programming Taskbook содержит формулировки всех учебных заданий. Формулировки отформатированы в соответствии с печатным вариантом задачника, который приведен в книгах «Практикум по программированию на языке Паскаль» (автор М. Э. Абрамян) и «Основы программирования на языке Паскаль» (авторы М. Э. Абрамян и С. С. Михалкович).

Задания, помеченные символом « ± », можно выполнять в свободно распространяемой бесплатной мини-версии задачника. В мини-версию включены 200 заданий, в том числе все задания групп Begin, Integer, Boolean, а также избранные задания из других разделов задачника. Следует отметить, что в миниверсию включены все задания, решения которых даются в книгах «Практикум по программированию на языке Паскаль» и «Основы программирования на языке Паскаль». Ниже приводится список всех заданий, включенных в миниверсию задачника:

Begin1–Begin40, Integer1–Integer30, Boolean1–Boolean40, If4, If6, If8, If12, If22, If26, Case4, Case9, For5, For12–For13, For15–For16, For19–For20, For33, For36, While1–While2, While4, While7, While11–While12, While22– While23, Series1, Series15–Series17, Series19, Series21, Series30, Proc4, Proc8, Proc21, Proc25, Proc40, Minmax1, Minmax6, Minmax12, Minmax26, Array7, Array47, Array60, Array68, Array112, Array116, Matrix7, Matrix24, Matrix53, Matrix82, Matrix88, String9–String10, String29, String41, String70, File2, File25,

Замечания о формулировках заданий

File43, File48, File67, File74, Text1, Text4, Text21, Text34, Text42, Text57, Param1, Param17, Param41, Param51, Recur1, Recur10, Recur14–Recur18, Recur25, Dynamic2–Dynamic3, Dynamic5, Dynamic8, Dynamic10–Dynamic11, Dynamic30, Dynamic49, Dynamic55.

Для того чтобы упростить работу с заданиями, доступными в миниверсии, все эти задания (кроме заданий групп Begin, Integer и Boolean) объединены в особую группу Mix (см. раздел «Избранные задания из различных групп»).

Замечания о формулировках заданий

При формулировке заданий не используются понятия и имена, специфические для конкретного языка программирования, за исключением обозначения нулевого указателя NIL , которое используется в заданиях группы Dynamic («Динамические структуры данных»). Отметим, что группа Dynamic не включена в набор заданий для языков Visual Basic и С#.

Если о типе исходных или результирующих числовых данных в задании ничего не сказано, то предполагаются вещественные данные. Исключение составляет группа заданий Dynamic, в которой все числовые данные считаются целыми , и в формулировках заданий это особо не оговаривается.

При обработке наборов вещественных чисел следует предполагать, что все элементы набора являются различными (таким образом, любой набор вещественных чисел содержит единственный минимальный и единственный максимальный элемент). В наборах целых чисел могут присутствовать одинаковые элементы; в частности, наборы целых чисел могут содержать несколько минимальных и максимальных элементов. Аналогичные предположения справедливы для числовых массивов, а также для файлов, содержащих числовые данные.

Если в задании не указан максимальный размер исходных массивов, то его можно считать равным 10 для одномерных и 10 £ 10 для двумерных массивов.

При описании элементов одномерных и двумерных массивов используется понятие порядкового номера элемента , причем начальный элемент массива A размера N всегда имеет порядковый номер 1 и обозначается в формулировках заданий как A 1 , а конечный элемент этого же массива имеет порядковый номер N и обозначается как A N . Аналогично, начальный элемент двумерно-

М. Э. Абрамян. Электронный задачник Programming Taskbook 4.5

го массива B обозначается как B 1 ; 1 . Кроме того, понятие порядкового номера применяется к строкам и столбцам двумерных массивов (матриц): начальная строка и начальный столбец матрицы размера M £ N имеют порядковый номер 1, конечная строка — номер M , а конечный столбец — номер N . Подобный подход не зависит от выбора языка программирования и соответствует традиционно используемой в математике нумерации элементов векторов и матриц.

Максимальный размер исходных файлов не указывается, поэтому при решении заданий на файлы не следует использовать вспомогательные массивы, содержащие все элементы исходных файлов, однако допускается использование вспомогательных файлов . Все исходные файлы считаются существующими, за исключением специально оговоренных случаев, в которых существование исходных файлов требуется проверять в ходе выполнения задания.

Ввод и вывод данных, оператор присваивания

Все входные и выходные данные в заданиях этой группы являются вещественными числами.

Begin1 ± . Дана сторона квадрата a . Найти его периметр P = 4 ¢ a . Begin2 ± . Дана сторона квадрата a . Найти его площадь S = a 2 .

Begin3 ± . Даны стороны прямоугольника a и b . Найти его площадь S = a ¢ b и периметр P = 2 ¢ ( a + b ).

Begin4 ± . Дан диаметр окружности d . Найти ее длину L = ¼¢ d . В качестве значения ¼ использовать 3.14.

Begin5 ± . Дана длина ребра куба a . Найти объем куба V = a 3 и площадь его поверхности S = 6 ¢ a 2 .

Begin6 ± . Даны длины ребер a , b , c прямоугольного параллелепипеда. Найти его объем V = a ¢ b ¢ c и площадь поверхности S = 2 ¢ ( a ¢ b + b ¢ c + a ¢ c ).

Begin7 ± . Найти длину окружности L и площадь круга S заданного радиуса R : L = 2 ¢¼¢ R , S = ¼¢ R 2 .

В качестве значения ¼ использовать 3.14.

Begin8 ± . Даны два числа a и b . Найти их среднее арифметическое : ( a + b )/2. Begin9 ± . Даны два неотрицательных числа a и b . Найти их среднее геометри-

ческое , то есть квадратный корень из их произведения: p a ¢ b .

Begin10 ± . Даны два ненулевых числа. Найти сумму, разность, произведение и частное их квадратов.

Case1. Дано целое число в диапазоне 1–7. Вывести строку — название дня не дели, соответствующее данному числу (1 — «понедельник», 2 — «вторник» и т. д.).

Case2. Дано целое число K. Вывести строку-описание оценки, соответствующей числу $$K$$ (1 — «плохо», 2 — «неудовлетворительно», 3 — «удовлетворительно», 4 — «хорошо», 5 — «отлично»). Если $$K$$ не лежит в диапазоне 1–5, то вывести строку «ошибка».

Решение задачи, на языке: Паскаль, C, C++

Case3. Дан номер месяца — целое число в диапазоне 1–12 (1 — январь, 2 февраль и т. д.). Вывести название соответствующего времени года («зима», «весна», «лето», «осень»).

Решение задачи, на языке: Паскаль, C

Case4. Дан номер месяца — целое число в диапазоне 1–12 (1 — январь, 2 февраль и т. д.). Определить количество дней в этом месяце для невисокосного года.

Решение задачи, на языке: Паскаль, C

Case5. Арифметические действия над числами пронумерованы следующим образом: 1 — сложение, 2 — вычитание, 3 — умножение, 4 — деление. Дан номер действия $$N$$ (целое число в диапазоне 1–4) и вещественные числа $$A$$ и $$B$$ ($$B$$ не равно 0). Выполнить над числами указанное действие и вывести результат.

Решение задачи, на языке: Паскаль, C

Case6. Единицы длины пронумерованы следующим образом: 1 — дециметр, 2 — километр, 3 — метр, 4 — миллиметр, 5 — сантиметр. Дан номер единицы длины (целое число в диапазоне 1–5) и длина отрезка в этих единицах (вещественное число). Найти длину отрезка в метрах.

Решение задачи, на языке: Паскаль, C, С++

Case7. Единицы массы пронумерованы следующим образом: 1 — килограмм, 2 — миллиграмм, 3 — грамм, 4 — тонна, 5 — центнер. Дан номер единицы массы (целое число в диапазоне 1–5) и масса тела в этих единицах (вещественное число). Найти массу тела в килограммах.

Решение задачи, на языке: Паскаль, C

Case8. Даны два целых числа: $$D$$ (день) и $$M$$ (месяц), определяющие правильную дату невисокосного года. Вывести значения $$D$$ и $$M$$ для даты, предшествующей указанной.

Case9. Даны два целых числа: $$D$$ (день) и $$M$$ (месяц), определяющие правильную дату невисокосного года. Вывести значения $$D$$ и $$M$$ для даты, следующей за указанной.

Case10. Робот может перемещаться в четырех направлениях («С» — север, «З» — запад, «Ю» — юг, «В» — восток) и принимать три цифровые команды: 0 — продолжать движение, 1 — поворот налево, –1 — поворот направо. Дан символ $$C$$ — исходное направление робота и целое число $$N$$ — посланная ему команда. Вывести направление робота после выполнения полученной команды.

Case11. Локатор ориентирован на одну из сторон света («С» — север, «З» — запад, «Ю» — юг, «В» — восток) и может принимать три цифровые команды поворота: 1 — поворот налево, –1 — поворот направо, 2 — поворот на $$180^o$$. Дан символ $$C$$ — исходная ориентация локатора и целые числа $$N_1$$ и $$N_2$$ — две посланные команды. Вывести ориентацию локатора после выполнения этих команд.

Решение задачи, на языке: Паскаль, C

Case12. Элементы окружности пронумерованы следующим образом: 1 — радиус $$R$$, 2 — диаметр $$D=2*R$$, 3 — длина $$L=2*\pi*R$$, 4 — площадь круга $$S =\pi*R^2$$. Дан номер одного из этих элементов и его значение. Вывести значения остальных элементов данной окружности (в том же порядке). В качестве значения $$\pi$$ использовать 3.14.

Решение задачи, на языке: Паскаль, C

Case13. Элементы равнобедренного прямоугольного треугольника пронумерованы следующим образом: 1 — катет a, 2 — гипотенуза $$c = a*\sqrt<2>$$ , 3 — высота h, опущенная на гипотенузу ($$h=c/2$$), 4 — площадь $$S = c*h/2$$. Дан номер одного из этих элементов и его значение. Вывести значения остальных элементов данного треугольника (в том же порядке).

Решение задачи, на языке: Паскаль, C, Кумир

Case14. Элементы равностороннего треугольника пронумерованы следующим образом: 1 — сторона a, 2 — радиус $$R_1$$ вписанной окружности ($$R_1 = a\sqrt<3>/6$$ ), 3 — радиус $$R_2$$ описанной окружности ($$R_2 = 2*R_1$$), 4 — площадь $$S = a^2*\sqrt <3>/ 4$$ . Дан номер одного из этих элементов и его значение. Вывести значения остальных элементов данного треугольника (в том же порядке).

Решение задачи, на языке: Паскаль, C

Case15. Мастям игральных карт присвоены порядковые номера: 1 — пики, 2 — трефы, 3 — бубны, 4 — червы. Достоинству карт, старших десятки, присвоены номера: 11 — валет, 12 — дама, 13 — король, 14 — туз. Даны два целых числа: $$N$$ — достоинство ($$6 \leq N\leq 14$$) и $$M$$ — масть карты ($$1\leq M\leq 4$$). Вывести название соответствующей карты вида «шестерка бубен», «дама червей», «туз треф» и т. п.

Решение задачи, на языке: Паскаль, C

Case16. Дано целое число в диапазоне 20–69, определяющее возраст (в годах). Вывести строку-описание указанного возраста, обеспечив правильное согласование числа со словом «год», например: 20 — «двадцать лет», 32 — «тридцать два года», 41 — «сорок один год».

Решение задачи, на языке: Паскаль, C, Кумир

Case17. Дано целое число в диапазоне 10–40, определяющее количество учебных заданий по некоторой теме. Вывести строку-описание указанного количества заданий, обеспечив правильное согласование числа со словами «учебное задание», например: 18 — «восемнадцать учебных заданий», 23 — «двадцать три учебных задания», 31 — «тридцать одно учебное задание».

Решение задачи, на языке: Паскаль, C, Кумир

Case18. Дано целое число в диапазоне 100–999. Вывести строку-описание данного числа, например: 256 — «двести пятьдесят шесть», 814 — «восемьсот четырнадцать».

Case19. В восточном календаре принят 60-летний цикл, состоящий из 12-летних подциклов, обозначаемых названиями цвета: зеленый, красный, желтый, белый и черный. В каждом подцикле годы носят названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи. По номеру года определить его название, если 1984 год — начало цикла: «год зеленой крысы».

Решение задачи, на языке: Паскаль, C

Case20. Даны два целых числа: $$D$$ (день) и $$M$$ (месяц), определяющие правильную дату. Вывести знак Зодиака, соответствующий этой дате: «Водолей» (20.1–18.2), «Рыбы» (19.2–20.3), «Овен» (21.3–19.4), «Телец» (20.4–20.5), «Близнецы» (21.5–21.6), «Рак» (22.6–22.7), «Лев» (23.7–22.8), «Дева» (23.8–22.9), «Весы» (23.9–22.10), «Скорпион» (23.10–22.11), «Стрелец» (23.11–21.12), «Козерог» (22.12–19.1).

Решение задачи, на языке: Паскаль, C

Если вы хотите выложить решение для задач, но нет решения на нужном языке, или вообще к задаче нет решений. Можете разместить его в виде комментария к данной статье.


Статьи по теме