Очно-дистанційні курси інформатиків

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Тема 4

Сообщений 1 страница 16 из 16

1

4. Оператори (7 год. + 5 год.) Цинчик Тетяна Петрівна
Вирази, блоки і порожні оператори
Оператори галуження
Умовний оператор if
Оператор ? (тернарний)
Оператор вибору switch
Оператори циклу
Цикл з передумовою while
Цикл з постумовою do
Цикл з параметром for
Цикл перебору foreach
Рекомендації по вибору оператора циклу
Оператори передачі управління
Оператор goto
Оператор break
Оператор continue
Оператор return
Базові конструкції структурного програмування
Обробка виняткових ситуацій
Оператор try
Оператор throw
Клас Exception
Оператори checked і unchecked

0

2

Думаю, що необхідно перенести

Rebryna V написал(а):

Оператор return

в розділ 5 Класи,
а

Rebryna V написал(а):

Цикл перебору foreach

а розділ 6 Масиви.
Бо в розділі 4 просто назвати їх і посилатися в інші розділи недоцільно.

Андрій Кухар пропонував замінити слово оператори на інструкції, мені це подобається. Хочу знати думку інших, бо прийдеться переробляти теорію не тільки мені, а й іншим.

0

3

Цинчик Тетяна написал(а):

замінити слово оператори на інструкції,

Якщо вже відмовитись від слова "оператор", то краще взяти влово "вказівка". Досить поширене у літературі (вказівка повторення, вказівка розгалуження тощо).

0

4

Пилипчук О.П. написал(а):

Якщо вже відмовитись від слова "оператор", то краще взяти влово "вказівка". Досить поширене у літературі (вказівка повторення, вказівка розгалуження тощо).

Слово вказівка поширене в літературі, де вивчалась мова Паскаль. Слово інстукція зустрічається в С#. Мабуть над плутаниною цих слів задумались не ми одні, тому і з'явилось поняття ІНСТРУКЦІЇ. Для людей, які знають англійський це суттєво, а наші учні англійській приділяють багато часу і знають її. Нам потрібно бути грамотними разом з ними.

0

5

Мені здавалось, що в Паскалі казали "оператор", а "вказівка" - звичайне українське слово, яке гарно підходить до змісту поняття. Схильність до вживання іншомовних слів там, де існують еквіваленти в рідній мові - погана звичка.

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

0

6

Я читала еще вариант - команда. А операция есть понятие математическое - действие над данными, т.е. операндами. Называть операцией команды языка - противоречит логике. Как назвать бывший опертор - инструкция, вказівка, команда - уже не так существенно. Кстати - присваивание - тоже команда, но не операция. Операции бывают унарные, бинарные, т.д.  Давайте определимся наконец, чтобы все пользовались одной терминологией.

0

7

Стукалова И.В. написал(а):

Кстати - присваивание - тоже команда, но не операция. Операции бывают унарные, бинарные, т.д.

В C/C++/C# присваивание -- это бинарная (двуместная) операция (operator =).

0

8

Що до "вказівки", давайте ще подумаємо про переклад слів "reference" та "pointer" (як я розумію зазвичай вживають слова "посилання" та "вказівник"). Щоб у нас не виникло занадто схожих термінів для позначення різних речей.

0

9

Кухар Андрій написал(а):

В C/C++/C# присваивание -- это бинарная (двуместная) операция (operator =).

Після Паскаля з цим важко змиритись :) , але це дійсно так. Тому, наприклад, є коректним такий фрагмент:

   int a,b,c;
   a=b=c*5*(c+b=a+7);

У наявному в мене перекладі книги Страустрапа другий рядок має назву "оператор вираз" (поряд з операторами розгалуження, циклу тощо).

Стукалова И.В. написал(а):

Как назвать бывший опертор - инструкция, вказівка, команда - уже не так существенно.

Для нас це якраз істотно, нам же посібник треба писати!

0

10

Кухар Андрій написал(а):

Що до "вказівки", давайте ще подумаємо про переклад слів "reference" та "pointer" (як я розумію зазвичай вживають слова "посилання" та "вказівник"). Щоб у нас не виникло занадто схожих термінів для позначення різних речей.

Такий переклад, на мою думку, вдалий. Якщо вже почали роботу з термінологією, то варто зразу давати ОЗНАЧЕННЯ цих понять. В проблемних випадках це допоможе вибрати більш вдалий переклад.

0

11

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

0

12

Пилипчук О.П. написал(а):

a=b=c*5*(c+b=a+7);

Цей вираз є помилковим. Не можна присвоїти значення виразові a+b. Операція + має вищий пріоритет, ніж =.

Пилипчук О.П. написал(а):

Такий переклад, на мою думку, вдалий. Якщо вже почали роботу з термінологією, то варто зразу давати ОЗНАЧЕННЯ цих понять. В проблемних випадках це допоможе вибрати більш вдалий переклад.

Я мав на увазі, що термін "вказівка" є невдалим через надмірну схожість на термін "вказівник".

0

13

Пилипчук О.П. написал(а):

Після Паскаля з цим важко змиритись  , але це дійсно так.

В GNU C складна інструкція може повертати значення.

int x = ({ int n = 5, f = 1; for (int i = 2; i <= n; i++) f *= i; f; });

Чи є вона операцією?

0

14

Кухар Андрій написал(а):

Цей вираз є помилковим.

Упс-с-с! Трохи кнопки переплутав, коли конструював цей вираз. Клацнув "Run" замість "Build and Run" (середовище C++ Code Blocks). Треба додати ще пару дужок: a=b=c*5*(c+(b=a+7));

Кухар Андрій написал(а):

В GNU C складна інструкція може повертати значення.

int x = ({ int n = 5, f = 1; for (int i = 2; i <= n; i++) f *= i; f; });

Бачу, в С# це ніби не прижилося, а в С++ - скомпілювалось... Очевидно, круглі дужки перетворюють те, що написано у фігурних дужках на вираз, бо без них не компілюється. Нарешті побачив, для чого можна використати найпростіший з виразів: f;

Сам Страустрап написав: "Скобками синтаксис C++ злоупотребляет; количество способов их использования приводит в замешательство:...". І при цьому, вони не роблять того, що від них чекають в першу чергу: "С помощью  скобок нельзя  задать  порядок  вычисления.". Ну й жартівники ці розробники С++!!!

Кухар Андрій написал(а):

Чи є вона операцією?

Раніше я пропонував все називати однаково: ОПЕРАТОР (+, *, =, &, if..., for....). З тих міркувань, що кожен з них реалізує якусь ОПЕРАЦІЮ (іноді досить складну). Чи не допоможе це уникнути плутанини і спростити виклад? Тобто, ніяких вказівок, команд, інструкцій... Тільки оператори.

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

Між іншим. В англійській мові все не так просто, як хотілося б. Маю "Англо-українсько-російський словник з інформатики та обчислювальної техніки":
OPERATOR - 1. оператор; 2. операція; 3. оператор (людина) (приблизно в половині з 19 словосполучень перекладено як "операція")
COMPOSITE OPERATOR - складений оператор
UNARY OPERATOR - унарна операція

STATEMENT - 1.твердження; 2.оператор (в абсолютній більшості з 44 словосполучень перекладено як "оператор")
ASSIGNMENT STATEMENT - оператор присвоєння

OPERATION - 1.команда; 2.режим роботи; 3.дія (77 словосполучень, в більшості "операція")

0

15

Пилипчук О.П. написал(а):

Маю "Англо-українсько-російський словник з інформатики та обчислювальної техніки":

Словники також пишуть люди і використовують якісь традиції. Подивіться у словник термінів у журналі "Комп'ютер у школі і сім'ї" та кілька інших словників і стане все ясно. У Львові є люди, які професійно займаються термінологією. Я на конференції слухав кілька років тому їх виступ. У нашій літературі з інформатики з термінами жах. Тому посилання на існуючі не таке вже тверде.
Очевидно, що якщо іти від англійських термінів і підбирати українські терміни, які не будуть давати двозначності, то це той шлях, який би нам варто було пройти. Якщо знайду ту статтю про терміни, всім вишлю.

0

16

Пилипчук О.П. написал(а):

Бачу, в С# це ніби не прижилося, а в С++ - скомпілювалось...

Загалом цього немає в С++. Це так зване "розширення GNU C". Компылюється тільки компіляторами GNU.

0