Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metod_Pascal_Lesya Ugryn.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
1.83 Mб
Скачать

9.1.5. Область дії ідентифікаторів

Pascal - програма має модульну структуру і може складатися з ряду вкладених блоків. Основна програма – самий великий блок, що не входить в інші. Об'єкти описані в цьому блоці є глобальними і можуть використовуватися в усіх локальних блоках. Локальні блоки – це процедури і функції користувача. Описані в них об'єкти є локальними і недоступні в зовнішніх блоках.

Правила користування ідентифікаторами Pascal-програми:

Кожний ідентифікатор повинен описуватися перед використанням.

  1. Областю дії ідентифікатора є блок, в якому він описаний.

  2. Всі ідентифікатори в блоці повинні бути унікальними, тобто не повторюватися.

  3. Один і той же ідентифікатор може по різному бути визначеним в кожному окремому блоку.

  4. Якщо ідентифікатор підпрограми користувача співпадає з іменем стандартної процедури або функції, то вони ігноруються а виконується підпрограма користувача.

Однією з поширених помилок програміста є випадкове використання глобальних змінних в процедурах і функціях, де вони змінюють своє значення. Це може призвести до прикрих несподіванок.

Приклад:

Дано дійсні p, q.

Обчислити

де

Текст програми 1

program fun;

var z,p,q:real;

function k(x,y:real):real;

begin

k:=x/(1+sqr(sin(y)))+y/(1+sqr(x));

end;

begin

readln(p);

readln(q);

z:=(k(1+p*q,sqr(q))+sqr(k(p,sqr(p))))/(1+k(p*q+sqr(q),p));

writeln('z=',z);

readln;

end.

Результат виконання програми

3

2

z=1.5259865321E+00

Текст програми 2

program pros;

var y,y1,z1,y2,z,p,q:real;

procedure k(x,y:real;var z1:real);

begin

z1:=x/(1+sqr(sin(y)))+y/(1+sqr(x));

end;

begin

readln(p);

readln(q);

k(1+(p*q),sqr(q),y);

k(p,sqr(p),y1);

k(p*q+sqr(q),p,y2);

z:=(y+sqr(y1))/(1+y2);

writeln('z=',z);

readln;

end.

Результат виконання програми

3

2

z=1.5259865321E+00

9.2. Завдання

Скласти програми обчислення заданих виразів з використанням функцій користувача та процедур:

Варіант 1

  1. Дано дійсні p, q.

Обчислити

де

  1. Дано дійсні p, q.

Обчислити

де

  1. Дано дійсні p, q.

Обчислити

де

  1. Дано дійсні p, q.

Обчислити

де

  1. Дано дійсні s, t.

Обчислити

де

  1. Дано дійсні s, t.

Обчислити

де

  1. Дано дійсні s, t.

Обчислити

де

  1. Дано дійсні s, t.

Обчислити

де

  1. Дано дійсні s, t.

Обчислити

де

  1. Дано дійсні s, t.

Обчислити

де

  1. Дано дійсні s, t.

Обчислити

де

  1. Дано дійсні s, t.

Обчислити

де

  1. Дано дійсні s, t.

Обчислити

де

  1. Дано дійсні s, t.

Обчислити

де

  1. Дано дійсні s, t.

Обчислити

де

  1. Дано дійсні s, t.

Обчислити

де

  1. Дано дійсні a, b.

Обчислити

де

  1. Дано дійсні r,s.

Обчислити

де

  1. Дано дійсні g, s.

Обчислити

де

  1. Дано дійсні p,q.

Обчислити

де

  1. Дано дійсні x, y.

Обчислити

де

  1. Дано дійсні r,s.

Обчислити

де

  1. Дано дійсні s, t.

Обчислити

де

  1. Дано дійсні x, y.

Обчислити

де

  1. Дано дійсні a, b.

Обчислити

де

  1. Дано дійсні s, t.

Обчислити

де

  1. Дано дійсні x, y.

Обчислити

де

  1. Дано дійсне x.

Обчислити

де

  1. Дано дійсне s.

Обчислити

де

  1. Дано дійсне z.

Обчислити

де

  1. Дано дійсне s.

Обчислити

де

  1. Дано дійсне y.

Обчислити

де

  1. Дано дійсне s.

Обчислити

де

  1. Дано дійсне x.

Обчислити

де

  1. Дано дійсне x.

Обчислити

де

  1. Дано дійсні s,g.

Обчислити

де

  1. Дано дійсне y.

Обчислити

де

  1. Дано дійсне y.

Обчислити

де

  1. Дано дійсне z.

Обчислити

де

  1. Дано дійсне r.

Обчислити

де

  1. Дано дійсне y.

Обчислити

де

  1. Дано дійсне y.

Обчислити

де

  1. Дано дійсні s.

Обчислити

де

  1. Дано дійснi x, y.

Обчислити

де

  1. Дано дійснi u, v.

Обчислити

де

  1. Дано дійснi u, v.

Обчислити

де

  1. Дано дійсні s,t.

Обчислити

де

  1. Дано дійсні s,t.

Обчислити

де

  1. Дано дійсні a,b.

Обчислити

де

  1. Дано дійсні a, b.

Обчислити

де

Варіант 2

  1. Дано дійсне t. Обчислити

  1. Дано дійсне g. Обчислити

  1. Дано дійсне t. Обчислити

  1. Дано дійсне z. Обчислити

  1. Дано дійсне k. Обчислити

  1. Дано дійсне z. Обчислити

  1. Дано дійсне t. Обчислити

  1. Дано дійсне r. Обчислити

  1. Дано дійсне t. Обчислити

  1. Дано дійсне k. Обчислити

  1. Дано дійсне f. Обчислити

  1. Дано дійсне p. Обчислити

  1. Дано дійсне z. Обчислити

  1. Дано дійсне s. Обчислити

  1. Дано дійсне p. Обчислити

  1. Дано дійсне p. Обчислити

  1. Дано дійсне f. Обчислити

  1. Дано дійсне h. Обчислити

  1. Дано дійсне g. Обчислити

  1. Дано дійсне q. Обчислити

  1. Дано дійсне q. Обчислити

  1. Дано дійсне y. Обчислити

  1. Дано дійсне r. Обчислити

  1. Дано дійсне r. Обчислити

  1. Дано дійсне k. Обчислити

Варіант 3

  1. Описати процедуру, яка в лінійному однонапрямленому списку L (без елемента-заголовка) із кожної групи підряд розташованих однакових елементів залишає тільки один.

  2. („одинакові” елементи –це такі, інформаційні поля яких співпадають).

  3. Описати процедуру, яка в лінійному однонапрямленому списку L (з елементом-заголовком) із кожної групи підряд розташованих однакових елементів залишає тільки один.

  4. („одинакові” елементи –це такі, інформаційні поля яких співпадають).

  5. Описати процедуру, яка вилучає із лінійного однонапрямленого списку L (без елемента-заголовка) наступний після кожного входження Е елемент, якщо такий є.

  6. (Е –значення інформаційного поля типу Tinfo).

  7. Описати процедуру, яка вилучає із лінійного однонапрямленого списку L (з елементом-заголовком) всі від‘ємні елементи.

  8. ( інформаційне поле типу real).

  9. Описати рекурсивну процедуру, яка вилучає із кільцевого однонапрямленого списку L всі входження елемента Е.

  10. (Е –значення інформаційного поля типу Tinfo).

  11. Описати процедуру, яка вилучає із кільцевого однонапрямленого списку L перший від‘ємний елемент, якщо такий є.

  12. ( інформаційне поле типу integer).

  13. Описати рекурсивну процедуру, яка вилучає із кільцевого однонапрямленого списку L перше входження елемента Е, якщо такий елемент існує.

  14. (Е –значення інформаційного поля типу Tinfo).

  15. Описати процедуру, яка вилучає із лінійного однонапрямленого списку L без елемента-заголовка всі входження елемента Е.

  16. (Е –значення інформаційного поля типу Tinfo).

  17. Описати рекурсивну процедуру чи функцію, яка обчислює середнє арифметичне всіх елементів непорожнього кільцевого однонапрямленого списку L.

  18. ( інформаційне поле типу real).

  19. Описати рекурсивну процедуру, яка друкує в зворотньому порядку елементи кільцевого однонапрямленого списку L.

  20. ( інформаційне поле типу char).

  21. Описати рекурсивну процедуру чи функцію, яка обчислює середнє арифметичне всіх елементів непорожнього лінійного однонапрямленого списку L без елемента-заголовка.

  22. ( інформаційне поле типу real).

  23. Описати рекурсивну функцію, яка обчислює кількість входжень елемента Е в лінійний однонапрямлений список L без елемента-заголовка.

  24. (Е –значення інформаційного поля типу Tinfo).

  25. Описати рекурсивну функцію, яка обчислює кількість входжень елемента Е в кільцевий однонапрямлений список L.

  26. (Е –значення інформаційного поля типу Tinfo).

  27. Описати рекурсивну функцію, яка знаходить максимальний елемент непорожнього лінійного однонапрямленого списоку L без елемента-заголовка.

  28. ( інформаційне поле типу real).

  29. Описати рекурсивну функцію, яка визначає, чи входить елемент Е в лінійний однонапрямлений список L без елемента-заголовка.

  30. (Е –значення інформаційного поля типу Tinfo).

  31. Описати функцію, яка обчислює середнє арифметичне елементів непорожнього кільцевого однонапрямленого списку L.

  32. ( інформаційне поле типу real).

  33. Описати функцію, яка обчислює кількість елементів лінійного однонапрямленого списку L (без елемента-заголовка).

  34. Описати функцію, яка обчислює кількість елементів кільцевого однонапрямленого списку L.

  35. Описати функцію, яка визначає, чи кільцевий однонапрямлений списк –порожній.

  36. Описати процедуру, яка вилучає другий елемент(якщо такий є) із непорожнього кільцевого однонапрямленого списку L.

  37. Описати рекурсивну процедуру, яка замінює в кільцевому однонапрямленому списоку L всі входження Е1 на Е2.

  38. (Е1,Е2 –значення інформаційного поля типу Tinfo).

  39. Описати рекурсивну процедуру, яка подвоює кожне входження елемента Е в кільцевий однонапрямлений список L.

  40. (Е–значення інформаційного поля типу Tinfo).

  41. Описати рекурсивну процедуру, яка замінює в лінійному однонапрямленому списоку L без елемента-заголовка всі входження Е1 на Е2.

  42. (Е1,Е2 –значення інформаційного поля типу Tinfo).

  43. Описати процедуру, яка вилучає перший елемент із непорожнього кільцевого однонапрямленого списку L.

  44. Описати процедуру, яка міняє місцями перший і останній елементи непорожнього лінійного однонапрямленого списку L (з елементом– заголовком).

  45. Описати процедуру, яка вставляє в кінець кільцевого однонапрямленого списку L новий елемент із значенням Е інформаційного поля типу Tinfo.

  46. Описати рекурсивну процедуру, яка будує L1–копію кільцевого однонапрямленого списку L.

  47. Описати процедуру, яка переносить на початок непорожнього лінійного однонапрямленого списку L(без елемента–заголовка) його останній елемент.

  48. Описати функцію, яка перевіряє на рівність лінійні однонапрямлені списки L1 та L2(без елементів–заголовків).

  49. Описати процедуру, яка замінює в кільцевому однонапрямленому списоку L всі входження V1 на V2.

  50. (V1,V2 –значення інформаційного поля типу Tinfo).

  51. Описати процедуру, яка вставляє в кільцевий однонапрямлений список L новий елемент Е1після кожного входження елемента Е.

  52. (Е1,Е –значення інформаційного поля типу Tinfo).

  53. Описати процедуру, яка вставляє на початок кільцевого однонапрямленого списку L новий елемент із значенням Е інформаційного поля типу Tinfo.

  54. Описати процедуру, яка вставляє в непорожній кільцевий однонапрямлений список L,елементи якого впорядковані по незростанню, новий елемент Е так, щоб збереглася впорядкованість.

  55. (Е –значення інформаційного поля типу real).

  56. Описати процедуру, яка вилучає другий елемент(якщо такий є) із непорожнього лінійного однонапрямленого списку L(без елемента-заголовка).

  57. Описати функцію, яка обчислює середнє арифметичне елементів непорожнього лінійного однонапрямленого списку L(без елемента-заголовка).

  58. Інформаційне поле типу real.

  59. Описати процедуру, яка вставляє в непорожній лінійний однонапрямлений список L(з елементом–заголовком),елементи якого впорядковані по незростанню, новий елемент Е так, щоб збереглася впорядкованість.

  60. (Е –значення інформаційного поля типу real).

  61. Описати процедуру, яка вставляє в лінійний однонапрямлений список L(з елементом– заголовком) новий елемент Е1 після кожного входження елемента Е.

  62. (Е1, Е –значення інформаційного поля типу Tinfo).

  63. Описати процедуру, яка вставляє в непорожній кільцевий однонапрямлений список L пару нових елементів Е1 та Е2 перед його останнім елементом.

  64. (Е1, Е2 –значення інформаційного поля типу Tinfo).

  65. Описати процедуру, яка вставляє в непорожній лінійний однонапрямлений список L(з елементом–заголовком) пару нових елементів Е1 та Е2 перед його останнім елементом.

  66. (Е1, Е2 –значення інформаційного поля типу Tinfo).

  67. Описати функцію, яка перевіряє на рівність кільцеві однонапрямлені списки L1 та L2.

  68. Описати процедуру, яка вилучає останній елемент із непорожнього кільцевого однонапрямленого списку L.

  69. Описати функцію, яка перевіряє чи є в кільцевому однонапрямленому списку L хоча би два „однакових” елемента,– такі, інформаційні поля яких співпадають.

  70. Описати функцію, яка перевіряє чи є в лінійному однонапрямленому списку L (без елемента-заголовка) хоча би два „однакових” елемента,– такі, інформаційні поля яких співпадають.

  71. Описати функцію, яка перевіряє на рівність лінійні однонапрямлені списки L1 та L2 (з елементами–заголовками).

  72. Описати процедуру, яка міняє місцями перший і останній елементи непорожнього кільцевого однонапрямленого списку L.

  73. Описати процедуру, яка міняє місцями перший і останній елементи непорожнього лінійного однонапрямленого списку L(без елемента-заголовка).

  74. Описати процедуру, яка вилучає перший елемент із непорожнього лінійного однонапрямленого списку L(з елементом–заголовком).

  75. Описати функцію, яка перевіряє, чи впорядковані елементи лінійного однонапрямленого списку L(без елемента-заголовка) по алфавіту. Інформаційне поле типу „А”..”Z”.

  76. Описати функцію, яка перевіряє, чи впорядковані елементи лінійного однонапрямленого списку L(з елементом–заголовком).по алфавіту. Інформаційне поле типу „А”..”Z”.

  77. Описати функцію, яка обчислює суму останнього і передостаннього елементів лінійного однонапрямленого списку L(без елемента-заголовка),що містить не менше двох елементів.

  78. Інформаційне поле типу integer.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]