КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Приклад. write(a[i,j]:7:2); {Роздрукуємо елементи і-го рядка}
Рядки Begin Begin Begin write (i, ' сорт'); for j:=1 to 5 do a[i,j]:=2*abs(sin(i)) +j; write (a[i,j]:7:2); {Роздрукуємо елементи і-го рядка} end; writeln {Перейдемо на новий рядок} end; imin:=1; min:=a[1;3]; {Припустимо, що найменше сировини третього} for i:=2 to 5 do {виду потрібно для цукерок першого сорту} if a[i,3]<min then min:=a[i,3]; imin:=i; {Визначимо шуканий сорт цукерок} end; writeln ('Найменше сировини третього виду '); writeln ('потрібно для цукерок ', imin, ' сорту'); readln; end. Зауваження. Нехай задана деяка матриця ai,j,. Тоді вирази i = j, i < j та i > j визначають відповідно елементи головної діагоналі, елементи над та під головною діагоналлю цієї матриці. 1. Рядки (string). Дане типу рядок — це послідовність довільних символів (тобто елементів типу char). Сталі типу рядок записують за допомогою двох штрих-символів, які охоплюють текст. Рядок може містити від 0 до 255 символів. Наприклад, 'Україна', 'Львівська політехніка', '' – порожній рядок нульової довжини, ' ' – рядок, що містить один символ-пропуск. Змінну типу рядок оголошують за допомогою слова string так:
де n –довжина рядка, n<256. Довжину рядка можна не зазначати. const slovo=’University’; var fraza1: string[45]; fraza2: string; Над змінними типу рядок визначені операції з’єднання (+) та порівняння (<, <=, >, >=, =, <>). Порівняння двох рядків здійснюється зліва направо до перших різних символів, причому 'A'<'B', 'B'<'C' тощо. “Більшим” вважається символ, який розташований в алфавіті далі. Числовий код символу дає функція ord, наприклад, ord('B')=66, ord('A')=65. Зворотну дію виконує функція chr: chr(66) дає 'B'. Приклад. Нехай t1='New', t2=' Year'. Тоді з'єднанням цих рядків буде s:=t1+t2 (s матиме значення 'New Year'). Тут s > t1. Приклад. Вивести на екран малі літери латинського алфавіту та їхні коди можна так: for v:= 'a' to 'z' do writeln(v, ord(v):5).
2. Функції та процедури для дій з рядками. Над даними типу рядок визначені такі стандартні функції:
та процедури:
де зазначена змінна посилає в процедуру вхідне дане типу рядок і отримує назад інший рядок – результат виконання процедури. Приклад. Нехай змінна Dubno має значення 'Дубенська ЗОШ'. Розглянемо приклади функцій та їхні значення: ФункціяЗначення length (Dubno) 21; copy (Dubno, 11, 3) ЗОШ; concat (Dubno,' – № 1') Дубенська ЗОШ – № 1; pos ('З', Dubno) 11. Є два способи опрацювання даних типу string. Перший — можна опрацьовувати весь рядок як єдине ціле, застосовуючи до нього функції та процедури, другий — можна розглядати рядок як масив, складений з елементів-символів, і опрацьовувати його за правилами роботи з елементами масиву. Приклад. Деякі значення змінним fraza1 та fraza2 з попереднього прикладу можна надати, а потім вивести тексти на екран так: fraza1:=’Ви любите канікули?’; for i:=1 to 19 do read(fraza2[i]);{Вводимо текст з клавіатури} writeln(fraza1); writeln(fraza2).
Задача 1. Кодування інформації. Вилучити з фрази а пропуски, коми і крапки, інші символи продублювати. Вивести результат. program MyCode; uses Crt; var a, b, c: string; i: integer; begin clrscr; write('Введіть текст: '); readln(a); {Вводимо будь-яку фразу} b:= ''; for i:= 1 to Length(a) do begin c:= Copy(a, i, 1); if (c <> ',') and (c <>'.') and (c <>' ') { або так: c:= a[i]; } then b:= b + c + c end; writeln(b); readln; end.
Задача 2. Скласти програму, яка скрізь у заданому тексті mytext замінить деяке слово іншим словом такої ж довжини (word1 на word2). program FindAndChange; uses Crt; var mytext, word1,word2: string; i,k: integer; begin clrscr; write('Введіть текст: '); readln(mytext); write('Введіть шукане слово: '); readln(word1); write('Введіть інше слово: '); readln(word2); k:= length(word1); for i:= 1 to length(mytext) - k do if copy(mytext, i, k) = word1 then begin delete(mytext, i, k); insert(word2, mytext, i) end; writeln(mytext); readln; end.
Задача 3. Нехай задано рядок 'Я люблю інформатику'. Визначити довжину рядка. Вивести на екран друге слово цього рядка. program Ryadok; uses Crt; const r1: string = 'Я люблю інформатику'; var i,k,m,n1,n2: integer; begin clrscr; m:=0; k:=length(r1); {Визначаємо довжину рядка} writeln('Довжина рядка k=', k); for i:=1 to k do {Переглядаємо всі символи рядка} if r1[i]=' ' then {Шукаємо пропуск} begin m:=m+1; if m=1 then n1:=i; {Визначаємо номер першого та другого пропусків} if m=2 then n2:=i end; for i:=n1+1 to n2–1 do write(r1[i]); {Виводимо слово між двома пропусками} readln; end. § 15 Графіка 1. Графічний режим. Графічний екран дисплея складається з точок, які можна засвічувати певним кольором чи гасити, у результаті чого на екрані утворюється деяке зображення. Точки називаються пікселями. Кількість точок на екрані може бути різною, що залежить від якості екрана. Розглянемо екран, який має 640 точок у горизонтальному (x) напрямку і 480 у вертикальному (y). Початок відліку точок є у лівому верхньому куті екрана. Кожна точка характеризується двома координатами (x,y). Приклади розташування на екрані деяких точок показані на рис. 3. Рис. 3. Координати точок на графічному екрані 640х480 Програми, що виконують графічні побудови, переважно є лінійними і складаються з викликів стандартних графічних процедур та функцій, зібраних у модулі Graph.tpu. Сам модуль може бути в бiблiотеці Turbo.tpl або в деякому каталозі на диску. В останньому випадку модуль треба приєднати командою uses на початку програми. Потрібний також файл egavga.bgi — драйвер для VGA адаптера чи файл cga.bgi для відповідного CGA адаптера монітора тощо. Графічний режим спочатку треба задати. Це виконують так:
2. Процедури і функції для графічних побудов. Розглянемо процедури модуля Graph, призначені для графічних побудов.
Розглянемо деякі функції модуля Graph:
2. Кольори. Кольори задають числами або англійськими назвами:
Задача 1. Нарисувати різними кольорами десять концентричних кіл, які мають спільний центр по середині екрана, тобто в точці з графічними координатами (320; 240), і описати навколо кіл червоний прямокутник. program Circle10; uses Crt, Graph; var driver, mode, r: integer; begin clrscr; driver:= detect; initgraph(driver, mode, ''); r:= 10; {Радіус першого кола 10 пікселів} while r <= 100 do begin setcolor(r div 10); circle(320, 240, r); r:= r + 10 end; setcolor(red); rectangle(220, 140, 420,340); readln end. Задача 2. Нарисувати емблему. У верхній лівій частині графічного екрана на чорному фоні нарисувати блакитний квадрат, а в ньому – чорне коло, зафарбоване жовтим кольором. У центрі емблеми чорними літерами написати слово “Льотниче”. program Emblema; uses Crt, Graph; var driver, mode, i, x1, y1: integer; x, y: real; begin clrscr; driver:=detect; initgraph(driver,mode,''); setbkcolor(0); setcolor(3); rectangle(100,0,300,200); setfillstyle(1,3); floodfill(200,100,3); setcolor(14); circle(200,100,100); setfillstyle(1,14); floodfill(200,100,14); setcolor(0); circle(200,100,100); settextstyle(0,0,3); outtextxy(135,95, 'Льотниче'); readln end. Задача 3. Нарисувати графік функції y=2sin(2x)+1 на проміжку [0; 2p], табулюючи функцію з кроком h=0,1. У результаті експериментів, міняючи значення амплітуди в пікселях (за допомогою множника М), зобразити графік на екрані якнайкраще. program GrafikSin; uses Crt, Graph; const a=0; b=2*pi; h=0.1; h1=5; x0=60; y0=240; M=50; var driver, mode,x1,y1:integer; x,y:real; function f(x:real):real; begin f:=2*sin(2*x)+1 end; begin clrscr; driver:= detect; initgraph(driver,mode,''); setcolor(14); setbkcolor(1); line(20,y0,600,y0); line (x0,440,x0,20); {Координатні осі} x:=a; x1:= x0+trunc(M*x); {x,y – математичні координати} y:=f(x); y1:=y0-trunc(M*y); {x1,y1 – графічні координати} moveto(x1,y1);setcolor(15); while x<=b do begin y:= f(x); y1:=y0-trunc(M*y); lineto(x1,y1); x1:=x1+h1;x:=x+h end; settextstyle(0,0,1); outtextxy(60,245,'0');outtextxy(360,245,'6.3'); settextstyle(0,0,2); outtextxy(200,380,'Графік функції y=2sin2x+1');readln end.
Розділ ІІ Практичні роботи
Дата добавления: 2014-11-29; Просмотров: 557; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |