Загальні відомості про мову програмування p>
Qbasic p>
Мова QBASIC (Beginner's All-purpose Instruction Code) розроблений
Джоном Кіміні і Томасом Куртц в Дартмутського коледжі, США, у середині
1960 p>
QBASIC займає особливе місце серед всіх мов високого рівня. Зсамого початку він планувався як універсальна мова для початківців, ізасоби програмування на QBASIC досі включаються в комплектпоставки ПК, - як обов'язковий елемент технології. p>
Ось деякий гідності QBASIC (з точки зору масовогокористувача):простота синтаксису;простота організації даних і керуючих структур;велика кількість вбудованих команд і функцій, які дозволяють без праці виконуватитакі операції, як управління текстовим і графічним екраном, обробкасимвольних рядків і т.п.) p>
Особливим достоїнством QBASIC слід вважати можливість роботи врежимі інтерпретації, який різко спрощує процес налагодження програм:виконання майже кожної команди можна перевірити одразу після написання (Shift
+ F5). P>
арифметичних виразів p>
Програма на мові Бейсік записується у вигляді послідовностісимволів, до числа яких відносяться латинські і російські літери, арабськіцифри, знаки пунктуації (,;: " '?), знаки операцій (*/- + <> = =
.), спеціальні символи (% &! # $). p>
Для позначення вихідних даних і результатів обчислень вживаютьсязмінні. p>
Послідовність латинських букв і цифр, що починається з букви,називається ідентифікатором або ім'ям змінної. p>
Числа в програмі записуються в десятковій системі, замість коми вдесяткового дробу пишеться точка: 0, - 17, 0.25, - 34.85. p>
Змінні і числа - це найпростіші окремі випадки вирази. Більшескладні вираження будуються з чисел і змінних за допомогою знаків додавання,віднімання, множення, ділення, піднесення до степеня. (, (, *, /, ^. P>
При обчисленні значень виразів діють звичайні правила старшинства операцій: p>
1) зведення до степеня - ^ p>
1) множення, ділення *,/ p>
3) додавання, віднімання +, - p>
Дії в арифметичних виразах виконують зліва направо узалежно від їх пріоритету. Для того, щоб змінити природний порядокдій використовуються круглі дужки. Вирази в круглих дужкахвиконуються в першу чергу. p>
У виразі можуть бути використані наступні вбудовані функції: p>
ABS (х) - модуль г (г ( p>
SQR (х) -- корінь квадратний з х (((х). p>
INT (х) - ціла частина х p>
SIN (х) - синус х (аргументом служить Радіанна міра кута) p>
COS (х) - косинус х p>
TAN (x) - тангенс х p>
ATN (x) - арктангенс х p>
LOG (x) -- натуральний логарифм х p>
EXP (x) - експонента х p>
SGN (x) - визначення знака числа х p>
Наприклад. Записати за правилами Бейсіка математичні вирази p>
1) X2 2 X-5.12 (X ^ 2 2 * X-5.12)/(X ^ 2 +12.51) p>
X2 +12.51 p>
2) COS (X) - SIN (X) (COS (X) -
SIN (X))/(ABS (COS (X) + SIN (X ))) p>
| COS (X) + SIN (X) | p>
Вправи p>
1. Які з наступних послідовностей символів єідентифікаторами, а які ні. p>
а) Х б) Х1 в) Х (г) Х1Х2 д)
AB е) ABCDж) SIN з) SIN (Х) и) А-1 к) 2А л) MAX15 p>
2. Записати за правилами Бейсіка наступні вирази: p>
а) б) 1 + Х + Х2 в) 1 + (Х (+ (1 + Х (г) А + В p>
2
C + D p>
д) A + B -1,7 е) ((1,2-9,8 Х ((((ж)
(X2 + Y2 100 p>
1-Y (54,264-Х) p>
(2Х +50,2) p>
E + F +0,5
3. Переписати наступні вирази, записані за правилами Бейсіка, втрадиційної математичній формі: p>
а) А + B/(C + D) - (A + B)/C + D б) A * B/(C + D) - (C - D)/
B * (A + B)в) 1 + SQR (COS (Х + Y)/2) г) 2.56 + АВS (Х ^ 2-Y ^ 6) д) INT (Х * 5.234 - А * (Х + Y)) p> < p> ОПЕРАТОРИ ВВЕДЕННЯ-ВИВЕДЕННЯ p>
I Оператор присвоєння має загальний вигляд: p>
(ім'я іншої змінної p>
ім'я змінної = (арифметичні вираження p>
(число p>
В результаті виконання оператора присвоювання змінної,що стоїть ліворуч від знаку рівності присвоюється значення іншої змінноїабо значення арифметичного виразу або чисельне значення. Для того,щоб оператор присвоєння міг бути виконаємо, необхідно, щоб усізмінні у виразі мали деякі значення, були задані вище. p>
ПРИКЛАДИ 1. А = 0 2. С = 2 3. А = 2: В = 3 p>
В = С p>
С = (А + В) ^ 2/5 p>
ВПРАВИ
1. Які з наступних послідовностей символів є операторамиприсвоювання: p>
а) А = В б) А * Х + B = C в) Z = Z 1 д) Y = Y e) - Y = Y p>
2. Поставити у вигляді оператора присвоєння наступні дії: p>
а) змінної Z присвоїти значення, рівне напівсума значень змінних
Х і Y.б) подвоїти значення змінної А,в) значення змінної Х збільшити на 0.1,г) змінити знак значення змінних Y. p>
3. Поставити за допомогою операторів присвоювання наступні дії:а) змінної А привласнити значення різниці, а змінної По-напівсумазначень змінних Х і Y.б) зміною А привласнити значення подвоєного твори значеньзмінних Х і Y, а змінної У значення 0. p>
4) Дано Х, Y отримати (Х (- (Y (X = 2,57 Y =- 5,379 p>
1 + (Х * Y ( p>
Оператори вводу-виводу p>
Оператор введення з клавіатури: p>
INPUT [ "текст";] X1, [X2, X3 .. . XN]
[] - Означають, що параметри, які стоять в них не обов'язкові;
X1, X2, ... XN - імена змінних або ідентифікатори. P>
В результаті виконання цього оператора на екрані з'явиться текст, а змінним X1, X2, ... XN будуть задані значення з клавіатури. P>
Оператори блоку даних p>
READ X1, X2, X3, ... XN де X1, X2, .. XN - це імена змінних
DATA C1, C2, C3, ... CN C1, C2, ... CN - це значення p>
В результаті виконання цих операторів мінлива X1 одержить значення C1, X2 набуде значення C2 ...
Зауваження! Оператор DATA може стояти в будь-якому місці програми. Зчитувати дані зі сховища DATA можна за допомогою декількох операторів READ. P>
Оператор RESTORE повертає зчитування даних на початок. P>
Оператор виводу на екран
PRINT S1 [; S2; S3 .. .] де S1, S2 ... SN - списки
Списки це:
1) ім'я змінної, значення якої необхідно вивести на друк;
2) арифметичне вираз, значення якого необхідно вивести на друк;
3) текст, укладений в лапки. P>
роздільник між списками може бути:
1), - списки відокремлюються один від одного кроком табуляції, рівним 8 прогалинам;
2); - списки друкуються впритул один до одного. P>
Для управління виводу використовують спеціальний оператор: p>
LOCATE X, Y де X - номер рядка екрана 1 b) p> < p> Логічне вираз приймає одне з двох значень: TRUE (істина) і
FALSE (неправда). Ці вирази застосовуються в операторах розгалуження і циклу. P>
Існуючий пріоритет виконання операцій підтримується і тут:спочатку виконуються операції в дужках, потім логічне множення,логічне додавання
Приклади записів логічних виразів: p>
| математична запис | запис на мові Бейсік |
| (X> 0) і (Y0) AND (Y0 X, Y, Z рівні між собоюв) 2 Y належить 1 - ї чверті p> Оператори переходу поділяються на дві групи:оператори безумовного переходу і оператори умовного переходу. p>
Оператор безумовного переходу. p>
Він служить для переходу з одного рядка програми до іншої, поміченоїномером або міткою. p>
Загальний вигляд оператора: GOTO N p>
де N - номер рядка або мітки оператора, на який відбувається перехід впрограмі.
Приклади:
1. X = 3 2. GOTO W p>
GOTO 7. . . p>
Y = 2 * X W PRINT "рішенняотримано " p>
7 Z = 5 * X p>
Оператори умовного переходу
Існують дві форми розгалуження: повна і неповна. P>
Відповідно існують і два види операторів: повної та неповноїальтернативи.
I. Повна альтернатива (передбачені команди в гілці "ТАК" і в гілці
"НІ").
1) Лінійна форма запису (оператор записується в одному рядку) p>
Умова виконується "ТАК" p>
IF умова THEN блок операторів 1 ELSE блок операторів 2 p>
умова не виконується "НІ" p>
Робота оператора: залежно від того виконується чи не виконуєтьсяумова (умова - логічне вираження, яке може містити знакипорівняння та логічні операції). Якщо умова істинно, то виконуєтьсяблок операторів 1, якщо умова помилково, то виконується блок операторів 2. p>
ПРИКЛАД: IF A = 1 THEN PRINT "ТАК" ELSE PRINT "НІ" p>
PRINT "КІНЕЦЬ"
Тут оператори працюють таким чином:якщо умова А = 1 "Істина", то виконуються оператори PRINT "ТАК" і PRINT
"КІНЕЦЬ";якщо умова А = 1 "помилковою", то виконуються оператори PRINT "НІ" і PRINT
"КІНЕЦЬ". P>
2) Блочна форма запису: p>
IF умова THEN ПРИКЛАД: блок операторів CLS: INPUT a гілки "ТАК" IF a = 1 THEN
ELSE PRINT
"працює гілку ТАК" блок операторів PRINT a гілки "НІ" ELSE
END IF PRINT "працюєгілку НІ " p>
PRINT a p>
END IF p>
II. Умовний оператор неповної альтернативи: p>
IF умова THEN блок операторів p >
Приклади розв'язання задач.
Приклад 1.Определіть найбільша з двох чисел Х і У, введених клавіатури.
CLS: INPUT ""; X, Y
IF X> Y THEN p>
PRINT "Найбільше число X ="; X
ELSE p>
PRINT "Найбільший ЧІСЛОY ="; Y
END IF
END
Приклад 2. Розрахуйте Функцію для будь-якого значення Х. p>
X2 4 X-7, X =- 7д) X + Z, якщо X5 p>
Y = X * Z в інших випадках
3. Задані довжини сторін трикутника - А, В, С, Визначити, чи є трикутник рівнобедреним.
3. Скласти програму, що виводить на екран перші десять натуральних чисел.
4. Скласти програму, друкуючу таблицю квадратів перших десяти цілих чисел у центрі чистого екрана.
5. Обчислити значення функціїа) Y = 5 * X2-4X 11 на відрізку (-5,5) з кроком 1,5; p>
б) X2-2 * X 3, якщо X = 0в) SIN (X), якщо XA (y-1) THEN GOTO 20 P = A (i): K = im = A (y)
FOR y = i 1 TO 9
A (y) = A (y-1): A (y-1) = m IF A (y)> P
THEN GOTO 50
20 NEXT y
P = A (y): K = y p>
NEXT i 50 p>
NEXT y p>
FOR i = 0 TO 9 p>
A (K) = A (i): A (i) = P p>
PRINT А (i) NEXT i p>
NEXT i PRINT
"Відсортовані елементи" p>
FORi = 0 TO 9 p>
PRINT
A (i) p>
NEXTi p>
END p>
3 спосіб (метод простого включення) p>
DIM A (10), В (9) p>
PRINT "Введіть 10 елементів"
FOR i = 0 TO 9
INPUT B (i)
NEXT i
FOR i = 1 TO 10
A (i) = B ( i-1)
NEXT i
FOR i = 1 TO 10
P = A (I): Y = I-1
40IF P0 THEN A (Y +1) = A (Y) : Y = Y-1: GOTO 40
A (Y +1) = P
NEXT i
PRINT "відсортовані елементи"
FOR i = 1 TO 10
PRINT A (i)
NEXT i
END p>
Задачі на використання циклу при обробці масивів.
0. Вивести позитивні елементи масиву Х (k), потім негативні елементи масиву У (m) і кількість виведених чисел.
0. Дано k і масив X (k). Знайти суму. P>
(X1-P) 2 + (X2-P) 2 +...+( Xk-P) 2, де Р = Х1 + Х2 +...+ Хk)/k.
0. Дано m і масив Х (m). Знайти твір. P>
(2 + Х21) * (2 + х22 )*...*( 2 + Х2m).
4. Знайти номер елемента масиву Х (k), найближчого до С, де p>
С = (Х1 + Х2 +...+ Хk)/k
0. Дано С, m і масив Т (m). Знайти кількість елементів масиву Т, менших С, а для елементів, великих С, знайти їх середнє арифметичне.
0. Для масиву Т (m) знайти кількість елементів, великих попереднього елементу, а для тих, які менше, знайти їх середнє арифметичне.
0. Знайти номер найменшого позитивного елементу масиву Х (m).
0. Для масиву Х (m) надрукувати суму, твір і номери позитивних елементів після останнього нульового елемента.
0. Дано k і масив Т (k). Знайти суму і кількість елементів у масиві Т після першого нульового елемента.
0. Дано m і масив А (m). Надрукувати суму негативних елементів масиву
А після першого нульового елемента.
0. Дано m, координати ХА, УА пункту А і в масиві ДО із 2m чисел координати
Х1, У1, Х2, У2 ,..., Хm, Ym пунктів В1, В2 ,..., ВM. Вивести номер і координати пункту У найбільш віддаленого від пункту А.
0. Знайти загальна кількість нульових елементів у масивах Х (m), У (k).
0. Утворити і вивести масив Т з невід'ємних елементів масиву
Х (m). Надрукувати число елементів у масиві Т.
0. Вивести парні за значенням серед позитивних елементів масиву Х (m), починаючи з першого позитивного елементу.
0. Подвоїти найбільший елемент масиву Х (m) і надрукувати змінений масив.
0. Вивести ненульові елементи масиву Х (m) і їх добуток.
0. Знайти суму і кількість непарних за значенням елементів масиву Х (m).
0. Утворити масив Т з ненульових елементів масиву Х (m). Потім вивести масив Т і кількість елементів у ньому.
0. У масиві Т (m) замінити нульові елементи найбільшим елементом.
0. У масиві Х (m) знайти суму і кількість елементів між першим і останнім нульовим елементами.
0. Поміняти місцями найбільший та найменший елементи масиву Т (m).
0. У масиві Х (m) знайти загальне число елементів до першого і після останнього нульових елементів.
0. Скільки елементів у масиві Х (m) після другого нульового елемента.
0. З елементів масивів Х (m) і У (m) утворити масив p>
Н (Х1, У1, Х2, У2 ,..., Х (m), У (m) з 2m елементів.
0. Округлити елементи масиву Х (m) до найближчого цілого.
0. З елементів масивів Х (m), У (k) утворити масив p>
Н ((Х1, Х2, Х3 ,..., Хm, У1, У2, У3 ,..., Уk) з m + k елементів.
0. Знайти номер другий нульового елемента масиву Х (m).
0. Знайти номер передостаннього нульового елемента масиву Х (m).
0. Переставити елементи масиву Х (m) у зворотному порядку, тобто
Хm ,..., X2, Х1.
0. У масиві Х (m) знайти число елементів між першим і другим нульовими елементами.
0. Скільки в масиві Т (m) елементів, менших суми всіх елементів?
0. У масиві Т (m) нульові елементи замінити сумою всіх елементів.
0. Утворюють чи арифметичної або геометричну прогресію елементи масиву Х (m)?
0. У масиві Т (m) замінити елементи з парними номерами сумою елементів з непарними номерами.
0. Знайти відстань між масивами Р А (k) і В (k) за формулою: p>
Р2-(А1-В1) 2 + (А2-В2) 2 +...+( Ак-Вк) 2 .
0. У масив Р записати спочатку негативні елементи масиву Х (k). потім позитивні.
0. У масиві Х (k) знайти суму елементів і їх кількість до першої зміни знака.
0. З елементів масиву Х (k), що потрапляють у відрізок [A, B], скласти масив
М і вивести його.
0. На площині ХОУ дані k точок масивами координат Х (k), Y (k). Утворити масив номерів точок поза I чверті.
0. Утворити масив Н номерів нульових елементів масиву Х (k).
0. У одновимірному масиві з парною кількістю елементів (2 * N) знаходяться координати N точок площини. Вони розташовуються в наступному порядку: х1, у1, х2, у2, х3, у3 і т.д. Визначити мінімальний радіус кола з центром у початку координат, яка містить всі точки, і номери найбільш віддалених один від одного пікселів.
0. У двовимірному масиві N x M містяться М ординат N графіків функцій у точках 1,2,3 ,..., М. Визначити, чи перетинаються ці графіки в одній точці, і якщо так, то знайти її номер. Вважати, що графіки можуть перетнутися тільки в зазначених точках.
0. У одновимірному масиві міститься графік руху електропроезда від Пермі до Кунгура у вигляді: перший елемент-час руху до першої зупинки, другий елемент-час стоянки на першій зупинці; третій елемент-час руху до другої зупинки; четвертий елемент-час стоянки на другій зупинці; і так далі .... останній елемент-час руху від передостанній зупинки до
Кунгура.
0. У одновимірному масиві зберігаються результати соціологічного опитування.
Написати програму для підрахунку кількості результатів, що відхиляються від середнього не більше ніж на 7%.
0. Від острова Буяна до царства славного Салтана місяць шляху. Капітан корабля записує у вахтовий журнал кількості миль, пройдених за день.
Написати програму, що визначає, в яку десятиденки пройдено великий шлях.
0. У масиві зберігаються дані про температуру навколишнього повітря за місяць.
Визначити найхолоднішу декаду місяць.
0. Зростання студентів двох груп, в яких відповідно 23 і 25 чоловік, розміщений у двох масивах. Потрібно визначити середнє зростання студентів кожної групи, а також кількість студентів у двох групах разом, що мають зростання вище 180 см.
0. 20 покупців магазину оцінюють якість товару оцінками 3,4,5.
Визначити скільки відсотків становлять покупці, які поставили 5,4 і 3 окремо від загальної кількості покупців, які брали участь в експертизі товару.
0. У змаганні брали участь команди трьох класів по 6 осіб в кожній. Результати кожної команди занесені в певний масив у вигляді балів, якими судді оцінювали кожного учасника. Визначити команду-переможця.
0. Необхідно протестувати 15 абітурієнтів для розподілу їх по групах для вивчення іноземної мови: англійська мова, французька мова, німецька мова, початкове знайомство з іноземною мовою. Складіть програму, підраховують кількість абітурієнтів у кожній групі в залежності від того, як абітурієнт відповів на питання про вивченні іноземної мови в школі.
0. Протягом січня місяця в будинку не працювала котельня, тому температура в квартирах була мінливою. Визначити кількість днів протягом яких мешканцям пощастило мати температуру не нижче 15 градусів, а також вирахувати середню температуру повітря в квартирах за цей місяць. Для вирішення завдання використовувати масив.
0. 18 учнів здавали норму з метання гранати. Складіть програму, що визначає який відсоток учнів виконав норму. Якщо відомо, що норма 38 метрів.
0. У кожен сонячний день равлик, що сидить на дереві, піднімається вгору на
2 см, а в кожен похмурий день опускається вниз на 1 см. На початку спостережень равлик знаходилася в 30 см. від землі. Дан масив з 30 елементів, що містить відомості про те чи був день сонячним або похмурим.
Складіть програму визначення місця знаходження равлики до кінця 30 дня.
0. У день вашого народження тітка поклала на ваше ім'я в ощадбанк внесок у розмірі 1000 рублів. Щороку до внеску додається S% річних.
Складіть програму для обчислення:а) через скільки років внесок досягне R рублів?б) який розмір вкладу буде через 15 років після вкладення? p>
Оператори графіки p>
Сучасні комп'ютери мають чудові графічнимиузможностямі - у сучасних мультимедійних ЕОМ можливий навіть перегляд іредагування відеофільмів. Графіка орієнтована на побудовунайпростіших геометричних фігур і реалізацію найпростіших можливостейдинамічної графіки. p>
Для того щоб працювати з графічною інформацією необхідновстановити графічний режим роботи спеціальним оператором та будуть використанівідповідні оператори: p>
0. SCREEN N-оператор включення графічного режиму, де N - номер режиму роботи (0 - текстовий режим роботи, від 1 до 13 - графічні режими роботи) p>
0. PSET (X, Y) - оператор малювання точки з координатами Х, У (0 p>