Файл: ПП. Самостоятельные работы.pdf

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

колледж при МГУТУ, 2016

П-203

Прикладное программирование/СР

5. По данному текстовому файлу создайте новый текстовый файл, содержащий в начале каждой строки ее

номер.

6. По данному вещественному числу определить как оно представляется внутри компьютера, а также разбить

это представление на участки: мантисса, порядок, знак (эта программа должна будет правильно работать
только под фиксированным транслятором языка Паскаль).

7. По данной строке определить сколько строк можно получить переставляя символы: для строки «ма-

ма» ответ – 6: «аамм», «амам», «амма», «ммаа», «мама», «маам» (сами варианты перебирать не на-
до). Подсказка: формулу можно найти на странице по ссылке: http://www.chem-astu.ru/chair/study/
probability-theory/1_Combinatorics.shtml

8. По данным координатам точек определить, образуют ли они как вершины выпуклый многоугольник (ко-

ординаты точек вводятся в том же порядке, в каком они будут в многоугольнике).

9. Нахождение суммы ряда: 1 +

x

1

1!

+

x

2

2!

+

x

3

3!

+ . . . , где x – заданное комплексное число.

10. Программа создает «архив», в котором записаны все файлы данной папки без сжатия с указанием их

названия. Указание: изучите процедуры findFirst и findNext.

11. В текстовом файле найти сумму неотрицательных целых чисел, стоящих в начале строк.

12. Сравнение двух файлов на предмет их полного совпадения.

13. Сравнение двух текстовых файлов на предмет их совпадения за исключением возможного наличия «лиш-

них» пробелов в концах строк.

14. В данном текстовом файле найти наиболее часто используемое слово (включая переносы: то есть когда

на одной строке начинается слово и идет дефис, а на другой стороне продолжается). Случай, когда само
слово содержит дефис может обрабатываться некорректно.

15. Решение уравнения вида ax

2

+ bx + c = 0 с комплексными коэффициентами (и в множестве комплексных

чисел).

16. Разложение данного натурального числа в произведение простых сомножителей (результат как в школе).

17. Сравнение двух текстовых файлов на предмет их совпадения за исключением того, что количество пробе-

лов между другими символами может различаться.

18. В данном текстовом файле, содержащем программу на языке Паскаль, проверить правильность размеще-

ния комментариев (все комментарии закрыты, правильно вложены и т. п.).

19. Проверить, является ли данный файл текстовым файлом (содержащим только текст) /расширение файла

может быть любым/.

20. Проверить, совпадают ли два заданных текстовых файла за исключением того, что между строками файла

могут вставляться пустые строки.

21. Решить систему уравнений:

ax + b

=

0

cx + d

=

0

,

предполагая, что коэффициенты и неизвестные – комплексные числа.

22. По координатам двух точек на евклидовой плоскости нахождение длины отрезка, концы которого – за-

данные точки.

23. Проверка простоты заданного целого числа.

24. Нахождение числа Фибоначчи по номеру.

25. Нахождение номера числа Фибоначчи по его значению.

26. Нахождение площади треугольника по длинам его сторон.

27. Нахождение стороны треугольника по двум другим сторонам и углу между ними.

28. Нахождение евклидовых координат по полярным координатам точки.

29. Нахождение отношения двух комплексных чисел.

21


background image

колледж при МГУТУ, 2016

П-203

Прикладное программирование/СР

30. Нахождение стороны по другой стороне и двум, прилежащим ей углам.

31. Нахождение суммы цифр в целом числе.

32. Нахождение суммы двух обыкновенных дробей (результат – тоже обыкновенная дробь).

33. Проверка того, что заданное целое число совершенное (то есть равно всех его делителей, кроме себя).

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

Точки задаются координатами.

35. Нахождение наибольшего общего делителя двух данных целых чисел.

36. По заданному целому числу нахождение количества его целых делителей.

37. По данным трем числам определение корректности даты (первое число – номер дня в месяце, второе –

месяц, третье – год).

38. Перевод целого числа из 10-ой в двоичную систему счисления.

39. Перевод целого числа из двоичной в десятичную систему счисления.

40. Возведение комплексного числа в натуральную степень.

41. Решение системы двух линейных уравнений с двумя неизвестными.

42. Решение линейного уравнения с комплексными коэффициентами.

43. Нахождение обратной матрицы для данной матрицы 2 × 2.

44. Вывести данное натуральное число словами на русском языке (по числу 121 – «сто двадцать один»).

45. Для данных чисел нахождение среднего арифметического S, среднего арифметического квадратов – S

2

и

среднеквадратического отклонения –

q

n

n−1

(S

2

− S

2

).

46. Нахождение всех способов представления данного натурального числа в виде суммы квадратов натураль-

ных чисел.

47. Нахождение площади треугольника по координатам вершин.

48. Нахождение натуральной степени матрицы 2 × 2.

49. Нахождение наименьшего общего кратного двух заданных целых чисел.

50. Проверка того, что заданная точка в евклидовой плоскости лежит внутри треугольника, заданного коор-

динатами вершин (все координаты – целые).

51. Расчет количества денег вклада по начальной сумме, годовому проценту и количеству лет (предполагается

ежегодная капитализация процентов).

52. Для данной обыкновенной дроби, заданной числителем и знаменателем, найти равную ей несократимую

правильную дробь.

53. Проверка пары чисел на взаимную простоту.

54. Нахождение суммы ряда: 1 +

x

1

1!

+

x

2

2!

+

x

3

3!

+ . . . , где x – заданное число.

55. Вывести символами псевдографики прямоугольник на экран по координатам расположения верхнего ле-

вого и правого нижнего угла. Прямоугольник имеет стороны параллельные краям экрана.

56. Дана строка, содержащая только буквы латинского алфавита и пробелы. Осуществить простейшее шиф-

рование строки, поменяв символы на символ, стоящий в алфавите через n символов правее (если при этом
произойдет выход за пределы алфавита, то необходимо перейти к его началу). Пример: для n = 2 и строки
«Hello world» ответ: «Jgnnq yqtnf».

57. По координатам позиции двух ферзей на шахматной доске определить, бьют ли они друг друга.

58. По данным трем числам (день-месяц-год) нахождение дату следующего дня (день-месяц-год)

59. По данному числу определить, сколько раз встречается цифра 1 в его двоичной записи.

60. Перевод комплексного числа из обычной формы в показательную (или тригонометрическую – по выбору

студента).

22


background image

колледж при МГУТУ, 2016

П-203

Прикладное программирование/СР

3

Самостоятельная работа №2. Указатели и списки (7 часов)

Цели работы

• Практическое закрепление методики работы с простейшими списками

• Подготовка к закреплению понятия полиморфизма в объектно-ориентированном программировании

• проработка профессиональных компетенций ПК1.2-1.5

• проработка общих компетенций ОК2, 3, 5, 6.

Общая часть задания

1. Что выведет следующая программа на экран?

v a r p , p2 : ^ i n t e g e r ;

a , b :

i n t e g e r ;

b e g i n

a : = 2 ;

p:=@a ;
b : = 3 ;
p2 :=p ;
p:=@b ;
p2^:=p^∗10+p2 ^ ;

w r i t e l n ( a , ’

’ , b ) ;

end .

2. Что выведет следующая программа на экран?

t y p e pt=^t ;
t=r e c o r d

e :

i n t e g e r ;

n : pt ;

end ;

v a r

p : pt ;
x :

i n t e g e r ;

b e g i n

new ( p ) ;
p ^ . e : = 3 ;
new ( p ^ . n ) ;
p ^ . n ^ . n:= n i l ;
p ^ . n ^ . e : = 4 ;
x : = 0 ;

w h i l e ( p<>n i l ) do
b e g i n

x:=x∗10+p ^ . e ;
p:=p ^ . n ;

end ;

w r i t e l n ( x ) ;

end .

3. Что выведет следующая программа на экран?

t y p e pt=^t ;

t=r e c o r d

e :

i n t e g e r ;

n : pt ;

end ;

v a r

p , p2 , p3 : pt ;

i :

i n t e g e r ;

b e g i n

23


background image

колледж при МГУТУ, 2016

П-203

Прикладное программирование/СР

new ( p ) ;
p ^ . e : = 1 ;
p ^ . n:= n i l ;

p3 :=p ;

f o r

i :=2 t o 3 do b e g i n

new ( p2 ) ;

p2 ^ . e :=p ^ . e ∗ 3 ;
p2 ^ . n:= n i l ;
p ^ . n:= p2 ;
p:= p2 ;

end ;

w h i l e ( p3<>n i l ) do b e g i n

w r i t e l n ( p3 ^ . e ) ;

p3 := p3 ^ . n ;

end ;

end .

4. Напишите фрагмент программы, который добавляет новый элемент в конец следующего списка:

t y p e PItem=^TItem ;

TItem=r e c o r d

e l :

i n t e g e r ;

n e x t : PItem ;

end ;

v a r

f i r s t : PItem ;

5. Напишите фрагмент программы, который удаляет первый элемент из списка:

t y p e PItem=^TItem ;

TItem=r e c o r d

e l :

i n t e g e r ;

n e x t : PItem ;

end ;

v a r

f i r s t : PItem ;

В соответствии со своим вариантом выполните действия со списком, хранящимся с использованием следую-

щих типов и переменных

t y p e PItem=^TItem ;

TItem=r e c o r d

e l :

i n t e g e r ;

n e x t : PItem ;

end ;

v a r

f i r s t : PItem ;

Просмотр списка должен осущестляться ровно один раз.

1. Нахождение суммы всех элементов исходного списка, удаление всех элементов, равных 0, добавление квад-

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

2. Нахождение произведения всех элементов исходного списка, удаление всех элементов, меньших 0, до-

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

3. Нахождение максимума всех элементов исходного списка, удаление всех четных элементов, добавление

копии элемента после каждого элемента списка, пропорционального 3.

4. Нахождение минимума всех элементов исходного списка, удаление всех нечетных элементов, добавление

после каждого элемента исходного списка его номера (каким он был в исходном списке).

5. Нахождение суммы всех четных элементов исходного списка, удаление всех чисел, оканчивающихся на 0,

из списка, добавление после каждого элемента списка квадрата этого элемента.

24


background image

колледж при МГУТУ, 2016

П-203

Прикладное программирование/СР

6. Нахождение максимума всех четных элементов исходного списка, удаление всех нечетных элементов и

добавление после каждого элемента списка, являющегося квадратом целого числа, значения −1.

7. Нахождение минимума всех элементов, больших нуля; удаление всех отрицательных элементов и добав-

ление после каждого элемента списка числа, на единицу большего.

8. Нахождение суммы всех элементов; удаление всех элементов, пропорциональных двум, добавление после

каждого элемента списка куба этого элемента.

9. Нахождение суммы всех элементов, меньших нуля; удаление всех элементов, последняя цифра которых

равна 5, добавление после каждого элемента списка числа, равного последней цифре данного элемента.

10. Нахождение наименьшего четного числа; удаление всех элементов, больших 10, добавление после каждого

элемента списка квадрата данного числа.

11. Нахождение наименьшего числа, кратного трем; удаление всех элементов – двузначных натуральных чи-

сел, добавление после каждого элемента, пропорционального двум, копии этого числа.

12. Нахождение наибольшего номера элемента списка (в исходном списке) числа, кратного трем; удаление

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

13. Нахождение суммы чисел, кратных трем; удаление всех элементов, оканчивающихся на 5, добавление

после каждого положительного элемента, копии этого числа.

14. Нахождение произведения однозначных натуральных чисел; удаление всех элементов, меньших по модулю

5, добавление после каждого отрицательного элемента, копии этого числа.

15. Нахождение наибольшего номера элемента списка (в исходном списке) двузначного числа; удаление всех

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

16. Нахождение суммы всех чисел, кратных 5; удаление элементов, являющихся квадратом натурального

числа, добавление после каждого положительного элемента его копии.

17. Нахождение произведения всех чисел, кратных 5; удаление элементов, стоящих на позиции, номер кото-

рой (в исходном списке) совпадает с самим элементом, добавление после каждого элемента его копии,
уменьшенной в 10 раз (целой части полученного частного).

18. Нахождение наименьшего числа, кратного десяти; удаление всех двузначных натуральных чисел, добав-

ление после трехзначных натуральных чисел копии.

19. Нахождение наибольшего числа, кратного десяти; удаление всех чисел, в которых разряд десятков и еди-

ниц совпадает, добавление после каждого числа, пропорционального последней цифре частного от деления
числа на последнюю цифру.

20. Нахождение количества чисел, у которых последняя цифра – 5; удаление всех чисел, стоящих после чис-

ла, на единицу большего (в исходном списке), добавление после положительных чисел элемента списка,
равного единице.

21. Нахождение произведения однозначных чисел списка; удаление чисел, меньших предыдущего (в исходном

списке), добавление после каждого элемента остатка от деления его на 3.

22. Нахождение суммы всех четных чисел списка; удаление чисел, в которых разряд сотен равен разряду

единиц, вставление после каждого элемента списка суммы его и первого элемента списка.

23. Удаление элементов равных номеру элемента в исходном спике, добавление после каждого элемента числа

его единиц, нахождение минимума из оставшихся элементов списка.

24. Удаление элементов, пропорциональных последней цифры, добавление после каждого элемента его номера

(каким бы он был после удаления элементов), нахождение максимума из оставшихся элементов списка.

25. Удаление элементов – однозначных чисел, добавление после каждого элемента его последней цифры, на-

хождение суммы оставшихся элементов списка.

26. Нахождение суммы всех положительных элементов исходного списка, удаление всех элементов, меньших

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

25