Профільна інформатика 10 клас Лінія “Алгоритмізація та програмування” Тема «Лінійні алгоритми. Введення та виведення даних»


НазваПрофільна інформатика 10 клас Лінія “Алгоритмізація та програмування” Тема «Лінійні алгоритми. Введення та виведення даних»
Дата конвертації13.02.2013
Розмір445 b.
ТипУрок


Профільна інформатика 10 клас

Лінія “Алгоритмізація та програмування”

Тема 5. «Лінійні алгоритми. Введення та виведення даних»,

Тема уроку: Поняття змінної. Ім’я та тип змінної. Опис стандартних типів змінних. Арифметичні операції. Правила запису арифметичних виразів

Константи і змінні

Константа, змінна - це засадничі поняття у будь-якій мові програмування. Дамо визначення цим поняттям.

Склад мови

Будь-яка мова програмування подібна до мови людини. Як і в нашій з вами мові(російському, англійському і так далі), в мові програмування можна виділити алфавіт, слова і пропозиції. Але мова програмування у відмінності від мови людини набагато простіше і підкоряється суворим правилам. Це обумовлено примітивністю обчислювальної техніки : комп'ютер - не людина, домислити нічого не може і обробляє тільки такий набір команд, який трактується однозначно.

Отже, розберемо базові поняття мови С# і розпочнемо з основи основ у будь-якій мові - його алфавіту.

Алфавіт мови - це той набір символів(знаків), який допустимий в цій мові.

У алфавіт мови C# входять:

прописні і рядкові букви(латинські і національних шрифтів) і символ підкреслення(_);

цифри;

спеціальні знаки: ' " , { } | [ ] ( ) + - / \ % ? ! . ; : < = > & * ~ ^

Символи, що не відображаються, вони використовуються для відділення лексем один від одного(це пропуски, табуляція, перехід на новий рядок).

З окремих символів алфавіту мови будуються більші блоки програми : лексеми, директиви препроцесора і коментарі.

Лексема



Ідентифікатор

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

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

Все, що застосовується в програмі, має ім'я.

Імена(назви) мають константи, змінні, методи, класи і т. д.

Ім'я не може розпочинатися з цифри. Довжина імені довільна. Обмеження накладаються тільки на зовнішні імена, наприклад, на імена бібліотек, але це обмеження не мови C#, а операційної системи.

У ідентифікаторах допускається застосовувати національні шрифти, але це небажано.

Ключові слова

Ключові слова - це службові слова, які зарезервовані в мові, їх можна використати тільки по прямому призначенню(наприклад, for - це заголовок оператора циклу і нічого більшого), тобто зарезервовані слова не можна використати в якості імен змінних користувача.

Ключові слова, визначені в стандарті мови C#, приведені в наступні таблиці.



Елементи мови



Escape - послідовність

Послідовність (по-іншому - escape- послідовність), що управляє, є певним символом, перед яким стоїть обернена коса риска(зворотний слэш). При цьому два ці знаки вважаються за один символ.

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

Допустимі значення послідовностей, що управляють



Коментарі

Коментарі - це фрагменти програми, які не обробляються компілятором, а використовуються для пояснення тексту програми. У мові C# є ті ж види коментарів, що і в C++, а також з'явився новий вид.
  • Однорядковий коментар - розпочинається з двох символів "коса риска", наприклад:

// це коментар в один рядок

2) Багаторядковий коментар - розпочинається з пари символів /* і закінчується парою */. Приклад:

/* Великий

коментар

*/

3) Коментарі для автоматичної генерації документації в XML- форматі. Вони розпочинаються з трьох символів "коса риска".

///

///This is Alfa class

///



Опис і ініціалізація змінних

Перш ніж використати в програмі якусь змінну, потрібно обов'язково дати її опис, тобто сказати, яке ім'я має змінна і який її тип. Спочатку вказується тип змінної, а потім її ім'я. Наприклад:

int k; // це змінна цілого типу int

double x; // це змінна дійсного типу подвоєної точності

Якщо є декілька змінних одного типу, то допускається їх опис через кому в одному операторові, наприклад:

double a, b, c;

Після опису змінною її можна використати, але виникає питання: а яке значення має змінна відразу ж після її опису? Відповідь така: в програмі на мові C# значення змінної після опису не визначене. Така змінна може використовуватися в лівій частині оператора присвоєння, але її не можна використати у виразі або в правій частині оператора присвоєння. Наприклад:

Після опису змінною її можна використати, але виникає питання: а яке значення має змінна відразу ж після її опису? Відповідь така: в програмі на мові C# значення змінної після опису не визначене. Така змінна може використовуватися в лівій частині оператора присвоєння, але її не можна використати у виразі або в правій частині оператора присвоєння. Наприклад:

double x, y, z;

x=2.5; // так можна

y=z+1; // а так не можна! Змінна z не визначена

Для останнього оператора компілятор мови C# видасть повідомлення про помилку. Цією властивістю (не можна використати змінну, яка не отримала ніякого значення) мова C# вигідно відрізняється від своїх попередників - мов С і С++.

Щоб уникнути проблеми, рекомендується ініціалізувати змінні, тобто не просто виділяти пам'ять під змінні, але і задавати їм при цьому необхідні значення. Наприклад:

double x=3, y=4, z=5;

Ініціалізація змінних виконується один раз на етапі компіляції.

Задання і використання констант

Усі константи незалежно від типу даних можна підрозділити на дві категорії: іменовані константи і константи, які не мають власного імені.

Наприклад:

25 - константа цілого типу;

3.14 - дійсна константа;

'A' - символьна константа.

Наведені константи не мають імені, вони задані своїм зовнішнім представленням і використовуються в програмі безпосередньо, наприклад так:

int k=25; // змінна k ініціалізувала константою - цілим числом 25.

У ряді випадків константі зручніше дати ім'я і використати її далі по імені. Це робить текст програми наочнішим. Зазвичай застосовується для математичних або фізичних констант.

У мові C# визначити іменовану константу дуже просто. Для цього використовують ключове слово const, наприклад:

const double PI=3.14; // тут PI – константа

double t;

t=PI * 2;

Строгий контроль типів даних в C#

C# - мова із строгим контролем типів даних.

Це означає, що усі операції в C# контролюються компілятором на предмет сумісності типів даних, а якщо операція є неприпустимою, то вона не компілюватиметься.

Така строга перевірка типів даних допомагає запобігти помилкам і підвищує надійність. Для можливості здійснення цього контролю усім змінним, результатам обчислень виразів і значенням заданий певний тип (тобто не існує змінної з невизначеним типом).

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

Звичайні типи даних

C# включає дві основні категорії вбудованих типів даних : звичайні типи(чи прості типи) і посилальні типи.

До посилальних типів відносяться класи, про які ми поговоримо пізніше.

Звичайні типи, яких в ядрі C# тринадцять, представлені в таблиці.

У C# для кожного типу даних строго специфікований діапазон значень і можливі операції над ними. В C# строго контролюється виконання цих специфікацій.

Цілочисельні типи

У C# визначені дев'ять цілочисельних типів даних : char, byte, sbyte, short, ushort, int, uint, long і ulong.

Тип даних char в основному застосовується для представлення символів і буде описаний пізніше в цій главі.

Інші вісім типів використовуються для виконання операцій з числами.

У наступній таблиці перераховані ці типи, а також вказана кількість бітів, що виділяються для представлення числа, і діапазон можливих значень.

Цілочисельні типи



Як показано в таблиці, в C# визначені як знакові, так і беззнакові варіанти цілочисельних типів.

Як показано в таблиці, в C# визначені як знакові, так і беззнакові варіанти цілочисельних типів.

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

Якщо прапор знаку 0, то це додатне число; якщо прапор знаку 1, то число від'ємне. Від'ємні числа практично завжди представлені з використанням методу двійкового доповнення. У цьому методі усі біти числа(за винятком прапора знаку) інвертуються, потім до цього числа додається одиниця, на завершення прапору знаку задається значення 1.

Можливе автоматичне перетворення від менш потужного до потужнішого типу, але не навпаки.

Можливе автоматичне перетворення від менш потужного до потужнішого типу, але не навпаки.

Наприклад:

int i = 3;

short k = 2;

i = k; // це допустимо

k = i; // так не можна, буде повідомлення про помилку

k = (short) i; //а так можна - виконуємо явне перетворення

Дійсний тип



Типи даних з плаваючою комою

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

У С# існують два типи даних з плаваючою комою, float і double, представляючі числа з одинарною і подвійною точністю відповідно. Для представлення даних типу float виділяються 32 біта, що дозволяє привласнювати змінним значення чисел, що знаходяться в діапазоні від 1.5E-45 до 3.4Е+38.

Для представлення даних типу double виділяються 64 біта, що розширює діапазон використовуваних чисел до величин з діапазону від 5Е-324 до 1.7Е+308.

Найчастіше застосовується тип double.

Одна з причин цього в тому, що багато математичних функцій у бібліотеці класів C# використовують значення, що мають тип double.

Наприклад, метод Sqrt(), визначений в стандартному класі System.Math, повертає значення типу double, що є квадратним коренем його аргументу, що також має тип double.

Приклад програми, в якій для обчислення довжини гіпотенузи, заданої довжинами двох катетів, використовується метод Sqrt().

public static void Main()

{

double x, y, z;

 x = 3;

y = 4;

 z = Math.Sqrt(x*x + y*y);

Console.WriteLine("Довжина гіпотенузи дорівнює " + z);

}

}

До уваги!

Метод Sqrt() є членом класу Math.

Зверніть увагу на спосіб виклику методу Sqrt() - ім'я методу відокремлене крапкою від імені класу, членом якого він є.

Схожий спосіб запису нам вже зустрічався, коли перед ім'ям методу WriteLine() стояло ім'я його класу Console.

Не усі стандартні методи треба викликати, вказавши спочатку ім'я класу, в якому визначений цей метод, але деякі методи вимагають саме такого виклику.

Тип decimal

Можливо, найцікавішим числовим типом даних в C# є тип decimal, призначений для використання в грошових обчисленнях.

У типі decimal для представлення значень, що знаходяться в діапазоні від 1Е-28 до 7.9Е+28, використовується 128 бітів.

В звичайних арифметичних обчисленнях, виконуваних над числами з плаваючою комою, неодноразові округлення значень призводять до неточного результату.

Тип даних decimal усуває помилки, що виникають при округленні, і може представляти числа з точністю до 28 десяткових розрядів(а в деяких випадках і до 29 розрядів).

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

Приклад програми, яка для грошових обчислень використовує тип даних decimal. Програма обчислює баланс після нарахування відсотків:

// Програма демонструє використання типу decimal для фінансових обчислень

using System;

class UseDecimal

{

public static void Main()

{

decimal balance;

decimal rate;

// Підрахунок нового балансу

balance = 1000.10m;

rate = 0.1m;

// При введенні значення типу decimal повинні закінчуватися символом m або M.

balance = balance * rate + balance;

Console.WriteLine("Новий баланс: $" + balance);

}

}

Символи

На відміну від інших мов програмування (таких, як С++, в яких для представлення символу виділяється 8 бітів, що дозволяє працювати з 255 символами) в C# використовується стандартний набір символів Unicode, в якому представлені символи усіх мов світу.

У C# char - беззнаковий тип, якому для представлення даних виділені 16 бітів, що дозволяє працювати зі значеннями, що знаходяться в діапазоні від 0 до 65535(тобто з 65535-а символами).

Стандартний 8-бітовий набір символів ASCII є складовою частиною Unicode і знаходиться в діапазоні від 0 до 127. Таким чином, ASCII- символи залишаються дійсними в C#.

Для того, щоб присвоїти значення символьної змінної, треба взяти в одинарних лапок символ, що стоїть праворуч від оператора привласнення. Нижче показаний синтаксис операторів, при виконанні яких змінній ch привласнюється значення X.

Для того, щоб присвоїти значення символьної змінної, треба взяти в одинарних лапок символ, що стоїть праворуч від оператора привласнення. Нижче показаний синтаксис операторів, при виконанні яких змінній ch привласнюється значення X.

char ch;

ch = 'X';

Для виведення символьного значення використовується оператор WriteLine().

Наступний рядок виводить значення змінної ch:

Console.WriteLine("Значення змінної ch - " + ch);

Булевий тип даних

Змінна типу bool або логічний вираз матимуть одне з цих двох значень. Більше того, не існує способу перетворення значень типу bool в цілочисельні значення. Наприклад, значення 1 не перетвориться в значення true, а значення 0 - в значення false.

Приклад програми, яка демонструє використання типу даних bool:

using System;

public static void Main()

{

bool b;

b = false;

Console.WriteLine("Змінна b має значення " + b);

b = true;

Console.WriteLine("Змінна b має значення " + b);

}

Операції

Операції - це дії над даними.

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

У мові С# існує велика кількість різноманітних операції. Їх можна класифікувати за різними ознаками, наприклад: по кількості операндів, за призначенням.

Залежно від кількості операндів в C# одномісні, двомісні і одна тримісна операція.

За призначенням операції можна згрупувати таким чином: арифметичні, операції порівняння, логічні, побітові, спеціальні.

Розглянемо основні операції мови C#.

Арифметичні операції

Це найчастіше використовувані операції. Їх сенс близький до того, яким він відомий з курсу математики.

Пріоритет операцій

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

Для зміни порядку обчислення використовують круглі дужки, наприклад для множення на 2 суми двох чисел A і B можна написати: 2* (A+B)

Як видно з отриманих результатів, в C# один знак / означає дві різні операції. Якщо один або обидва операнди - дійсні, то виконується звичайне ділення, якщо обидва операнди - цілі, то виконується ділення без остачі і результат буде цілого типу. Використання цієї операції вимагає уважності, наприклад, якщо запрограмувати обчислення математичного вираження

Зміна знаку

Унарна операція "-" означає зміну знаку. Вона має дуже високий пріоритет - вище, ніж, приміром, у операції множення.

Тому у виразі - A*B спочатку виконується зміна знаку для A, а потім множення - A на B.

Для парності є і операція унарний плюс, тобто можна написати +A

Цікавіші, і головне, дуже споживані операції автозбільшення і автозменшення.

Правила запису складних математичних виразів у тексті програми

  • Знак множення * ставиться завжди.

  • Риска дробу замінюється знаком / .

  • Аргументи математичних функцій записуються у дужках.

  • Якщо чисельник містить суму або різницю, то він береться у дужки.

  • Якщо знаменник містить будь-яку дію, то він береться у дужки.

  • Запис можна переносити на наступний рядок.



Методи обчислення різних математичних функцій, які найчастіше зустрічаються, містяться у класі Math.





Приклади запису математичних виразів у тексті програми

S = Math.PI * r * r;

C = Math.PI * 2 * r;

p = (a + b + c) / 2;

S = Math.Sqrt(p*(p-a)*(p-b)*(p-c));

x = (-b - Math.Sqrt(d))/(2*a);

y = Math.Sin(x);

y = Math.Sin(Math.PI/2);

1. Обчислити вираз

В тексті програми на C# це буде виглядати так:

y = Math.Sqrt(Math.Abs(x + 2))/(Math.Pow(x, 1.0 / 3) + 4);

2. Обчислити вираз

На C# це запишеться так:

y = Math.Sin(x + Math.PI / 10);

Записати вираз:

r =((a+b)*Math.Sin(Math.Pow(x,2))

+a*b)/Math.Sqrt(Math.Pow(Math.Cos(x

+Math.PI/2),2)-b)

Випереджувальне навчання Операції порівняння(операції відношення)

Застосовуються для порівняння(зіставлення) числової або символьної інформації. Результатом виконання операцій є або істина(true), або брехня(false).

Пріоритет операцій відношення нижчий, ніж у арифметичних операцій. Приклад використання :

Пріоритет операцій відношення нижчий, ніж у арифметичних операцій. Приклад використання :

A+B>=C

Перевіряємо: сума A і B більше С? Якщо " так", то відповіддю буде true, якщо " ні", то false.

Дійсні числа в пам'яті зберігаються приблизно, при роботі з ними в ході виконання арифметичних операцій можуть накопичуватися похибки, тому не рекомендується виконувати перевірку на рівність або на нерівність для дійсних чисел, оскільки результат може бути непередбачуваний. А якщо дуже потрібно? Що робити? Поступаємо просто. Якщо для дійсних чисел потрібно виконати перевірку на рівність(типу A==B), то замінюємо її на перевірку на нерівність виду

|A - B|<=; , де  - деяка мала додатна величина эпсилон.

В термінах мови C# це виглядатиме так

Math.Abs(A - B)<=eps


Схожі:

Профільна інформатика 10 клас Лінія “Алгоритмізація та програмування” Тема «Лінійні алгоритми. Введення та виведення даних» iconПрофільна інформатика Лінія “Алгоритмізація та програмування” Тема Моделі та моделювання
Розв’язання задач із використанням комп’ютера характеризується декількома етапами, частина з яких виконуються безпосередньо людиною,...
Профільна інформатика 10 клас Лінія “Алгоритмізація та програмування” Тема «Лінійні алгоритми. Введення та виведення даних» iconПрофільна інформатика Лінія “Алгоритмізація та програмування” Тема Основні поняття алгоритмізації (4 уроки)
«Написати контрольну роботу на 10» або «Вільно розмовляти іноземною мовою» вимагають виконання набагато більшої кількості складних...
Профільна інформатика 10 клас Лінія “Алгоритмізація та програмування” Тема «Лінійні алгоритми. Введення та виведення даних» iconПрофільна інформатика 10 клас Робота з файлами в C# Потік
У просторі імен System. Io зберігаються класи, призначені для зчитування І запису даних в файли
Профільна інформатика 10 клас Лінія “Алгоритмізація та програмування” Тема «Лінійні алгоритми. Введення та виведення даних» iconПрофільна інформатика Лінія “атп”
Для цього розглянемо задані дві точки (x1; y1) і (х2; y2), і деяку довільну точку (x; y), які лежать на одній прямій (мал. 1)
Профільна інформатика 10 клас Лінія “Алгоритмізація та програмування” Тема «Лінійні алгоритми. Введення та виведення даних» iconТема: Типи даних в Access
Поле-це мінімальна порція інформації в записі, над якою визначені операції введення, виведення, перетворення
Профільна інформатика 10 клас Лінія “Алгоритмізація та програмування” Тема «Лінійні алгоритми. Введення та виведення даних» iconВідділ освіти Дубенської міської ради Дубенська гімназія №2 Алгоритмізація та програмування
Дубенської гімназії №2 Колошкіної Т. В. з питань вивчення курсу "Алгоритмізація та програмування" за опорними конспектами. Матеріал...
Профільна інформатика 10 клас Лінія “Алгоритмізація та програмування” Тема «Лінійні алгоритми. Введення та виведення даних» iconТема: Пристрої введення – виведення інформації План лекції
Основним пристроєм введення текстових символів та послідовностей (команд) в комп'ютер є
Профільна інформатика 10 клас Лінія “Алгоритмізація та програмування” Тема «Лінійні алгоритми. Введення та виведення даних» iconТема: Введення, редагування та форматування табличних даних
Мета: Набути необхідних знань для введення, редагування, копіювання та вилучення даних
Профільна інформатика 10 клас Лінія “Алгоритмізація та програмування” Тема «Лінійні алгоритми. Введення та виведення даних» iconРозділ Бази даних. Системи управління базами даних Інформатика 11 клас
Програмне забезпечення, призначене для створення баз даних, оновлення даних, що зберігаються в них, забезпечення зручного доступу...
Профільна інформатика 10 клас Лінія “Алгоритмізація та програмування” Тема «Лінійні алгоритми. Введення та виведення даних» iconІнформатика 9клас Розділ 5 Введення та виведення інформації Графічний планшет
Графічний планшет (дігитайзер, діджітайзер) — це пристрій для введення малюнків від руки безпосередньо в комп'ютер. Складається з...

Додайте кнопку на своєму сайті:
dok.znaimo.com.ua


База даних захищена авторським правом ©dok.znaimo.com.ua 2013
звернутися до адміністрації
dok.znaimo.com.ua
Головна сторінка