Квадратные скобки в паскале для чего
Перейти к содержимому

Квадратные скобки в паскале для чего

  • автор:

Что означают квадратные скобки в паскале?

и при этом нету array — массивов, но для s1 + -/ * перечисляются в квадр. скобках.

Лучший ответ

В дополнение к Геннадию: а также множества. У тебя как раз множество.
if s1 in [‘+’,’-‘,’/’,’*’] then
означает если s1 является одним из знаков +,-/,* то .

Остальные ответы
В квадратных скобках указываются индексы элемента массива.
Похожие вопросы
Ваш браузер устарел

Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.

Программирование на языке Pascal от Елены Клейн

Хотите стать программистом? Научиться писать программы? С чего начать? Давайте начнем с языка Паскаль.

Словарик

‘ ‘ Две единичных кавычки. Ставятся с клавиши «Э» («Є») в английской раскладке клавиатуры. Между ними записывают текстовые переменные или просто текст, который необходимо вывести.
( ) Круглые скобки. Используются во многих местах программы для обозначения того, к чему именно будет применена идущая перед ними команда. Например, Write (a) — напечатать значение переменной а. Sqrt (x+y) — извлечь квадратный корень из суммы x+y.
. Точка. Одна точка встречается в самом конце программы, после слова end.
.. Две точки. Служат заменой слова «до» при задании массива. Например, запись [1..20] означает, что мы задаем массив, состоящий из одной строки, содержащей 20 элементов. А запись [1..8,1..10] означает, что мы задаем массив, содержащий 8 строк по 10 элементов в каждой.
:= Команда «Двоеточие равно» по-научному называется «оператор присваивания». А по поведению похожа на гопника. Комбинация «Двоеточие равно» никого ни о чем не спрашивает. Она берет ячейку памяти из левой части, и засовывает туда результат действий из правой части. Если в ячейке уже что-то было – старое значение стирается, и туда насильно вписывается новое. Разбой и хулиганство, одним словом…
; Точка с запятой означает, что строка закончена и следует перейти к выполнению следующей команды.
[ ] Квадратные скобки позволяют указывать номер элемента в массиве, чтобы обратиться к конкретному элементу. Например, запись a[8] означает, что в одномерном массиве по имени a (строке, где каждый элемент зовут а, но не просто, а еще с номером, как в семье, где у всех одинаковая фамилия — а, и разные имена — номера), мы обращаемся к восьмому по счету элементу. А запись a[i,j] означает что мы обращаемся к элементу а, стоящему в i строке на j месте.
Фигурные скобки нужны для обозначения комментария в программе. То, что внутри фигурных скобок, компьютер не пытается выполнять. Поэтому используют их в двух случаях: когда рядом с каким-то блоком программы хотят объяснить, что именно делает этот блок, или когда программа не работает как надо. Тогда мы берем в такие скобки кусочки программмы, чтоб выяснить, в каком блоке у нас ошибка.
= Просто «равно» — это интеллигент, старенький профессор. Который вежливо спрашивает: «Скажите пожалуйста, а правая часть выражения таки равна его левой части? Да? Нет?» Т.е. обычный знак «равно» — это оператор сравнения .
array Объявление массива. Массив нужен, если мы хотим задать сразу много переменных, имеющих один тип и выполняющих одинаковую работу. Тогда мы пишем в разделе Var a: array[1..150] и задаем сразу 150 переменных по имени а с разными номерами: a[1], a[2], … , a[150]
assign Если мы хотим вводить данные не с клавиатуры (как маленькие), а из файла (как настоящие программисты), мы должны сказать компьютеру, что некая переменная у нас с этого момента будет брать значения из определенного файла. Пишут так: assign (f, ‘input.txt’);
Begin Начало. Может означать начало программы, а может встретиться и внутри программы, если, например, при выполнении какого-то условия нужно сделать несколько действий. Тогда Begin — это как бы открытая скобка, показывающая, что с этого места программы начинаются действия, которые надо выполнять.
Char Тип переменных. Этот тип нужен, если мы работаем с символами, записанными по одному. Например, с буквами, или знаками «+» и «-». Или даже с цифрами, но, во-первых, 15 – это будет уже две переменных типа Char, потому, что в одну такую переменную помещается только один символ, а во-вторых, цифры в Char нельзя складывать. Применять математические действия к таким переменным нельзя. Много другого, тоже полезного, делать можно.
close Если мы работаем с файлами, из которых берем информацию или, наоборот, в которые складываем результаты, то после окончания работы с файлом его надо закрыть. Close(f) — закрыть файл, ассоциирванный с f.
div Помните, в начальной школе вы еще не знали, что бывают дробные числа? Тогда вы делили одно число на другое «с остатком». Иногда в программах нам понадобится такое деление. Так вот, если 7:3=2(1 остаток), то 7 div 3 = 2. Это целая часть, получившаяся при делении.
do «Делать». Часть оператора цикла For. Пишут так: For i:=1 to 5 do, что означает «Для i от 1 до 5 делать…» — дальше вы напишите, что именно вам надо сделать, в данном случае, 5 раз.
else Иначе. Используют вместе с оператором If. Если основное условие не выполнилось, то будут выполнятся действия, прописанные после оператора else. Кстати, очень важно, перед этим оператором НЕ СТАВЯТ точку с запятой в предыдущей строке. Исключение!
end Конец. Если с точкой — то конец всей программы. Если с «точкой с запятой» — то закрытая «операторная скобка», обычно — парочкой к Begin, но есть и одинокие варианты end. Например, оператор case не содержит Begin, но заканчивается end.
eof Очень удобная команда. While not eof (f) do означает читать файл f пока он не закончится. При этом вам совершенно не надо знать, какой длины ваш файл. Сказали — читай до конца, комп и читает…
file Это тип данных, который позволяет потом использовать переменные этого типа для чтения информации из файлов или записи информации в файл.
For Оператор создания цикла. Если вам надо вывести какое-то слово 150 раз, вы конечно можете писать его 150 раз вручную. А можете просто задать цикл For i:=1 to 150 do, и ваша задача выполнится 150 раз. Правда, если вы не знаете сколько точно раз надо выполнить действие, этот цикл не подходит.
goto Если до раздела Var вы прописали Label 1,2,3; а потом в середине программы некоторые строчки начинаете с 1: 2: 3:, то с помощью оператора goto 2, например, вы можете отправиться прямо к строке, начатой с 2: перескочив на сколько угодно строк вниз или вверх по тексту программы.
if Если. Оператор логического ветвления. Позволяет проверять условия, и, если условия выполнились, выполнять одну группу действий, а если нет — другую. Иногда сопровождается else.
input.txt Так будет называться текстовый файл (созданный в программе Блокнот), в который мы сможем записывать данные, которые компьютер должен обработать в процессе программы. А в файл output.txt он уже запишет результат самостоятельно. Кстати, чтоб все работало, этот файл должен лежать в одной папке с вашей программой. Ну, или пишите длинный путь к файлу, начиная с имени жесткого диска.
Integer это целые числа от -32 727 до 32 727 . Число 33 000 и даже 32 728 компьютер уже целым не считает. У него в голове такое длинное число не укладывается. Что делать, если нужно работать с большим числом или с дробью? Для этого есть другой тип.
Label Если до раздела Var вы прописали Label 1,2,3; а потом в середине программы некоторые строчки начинаете с 1: 2: 3:, то с помощью оператора goto 2, например, вы можете отправиться прямо к строке, начатой с 2: перескочив на сколько угодно строк вниз или вверх по тексту программы.
mod Помните, в начальной школе вы еще не знали, что бывают дробные числа? Тогда вы делили одно число на другое «с остатком». Иногда в программах нам понадобится такое деление. Так вот, если 7:3=2(1 остаток), то 7 mod 3 = 1. Это остаток, получившийся при делении.
output.txt Так будет называться текстовый файл (созданный в программе Блокнот), в который компьютер будет записывать результаты, получившиеся в результате работы программы. Кстати, чтоб все работало, этот файл должен лежать в одной папке с вашей программой. Ну, или пишите длинный путь к файлу, начиная с имени жесткого диска.
Program Самое первое слово в прграмме. Назовите свою программу, например Program prim1;
read Останавливает выполнение программы, и ждет, пока пользователь введет что-нибудь с клавиатуры. Получив информацию, проверяет, соответствует ли она заказанному типу переменной. Если да — запоминает в указанную ячейку памяти. Если нет — выбрасывает из программы с сообщением об ошибке. Read (g); — запомнит переменную в ячейку по имени g.
readln Аналогично read, только после выполнения уйдет на новую строчку на экране.
Real это не только большие положительные или отрицательные числа, но и дробные числа. Запомните, компьютер будет следить за тем, чтоб ваши переменные ВСЕГДА были нужного типа. Если вы сложите два целых числа, умножите целое на целое или отнимите от одного целого числа другое, вы все равно получите целое число. А если вы разделите целое на целое? Результат может быть и дробным. Поэтому переменная, которая получается в результате деления, должна быть типа Real.
Числа, которые компьютер выводит на экран в этом типе, выглядят непривычно. Вот так, например:

3,2000000000Е+4 это 32 000
3,2000000000Е-2 это 0,032

Откуда я знаю? Все просто. Считайте, что знак «+» после буквы Е означает слово «умножить», а знак «-», соответственно, «разделить». Сама буква Е означает, что делить и умножать мы будем на число 10. А число после знака указывает, сколько раз мы должны выполнить это действие. Когда-нибудь на уроках математики вам расскажут о «стандартном виде числа», т.е. о том, что любое число можно записать в виде десятичной дроби, умноженной на 10 в какой-то степени, например:

3,2·104 = 3,2·10·10·10·10 =32 000

Комментариев нет:
Отправить комментарий

Подписаться на: Сообщения (Atom)

Книжная полка

  • Главная страница
  • Словарик
  • Словарик, продолжение
  • Решение к уроку 2.
  • Решение к уроку 3
  • Решения к уроку 5
  • Решения к уроку 6 (Практика — 2)
  • Решения к уроку 9
  • Задачи про время. Решения.
  • Олимпиадная задача № 1. Решение.
  • Задача про нефть. Решение.
  • Решение задачи районной олимпиады 11_1.
  • Решение задачи 11_2 (районная олимпиада)
  • Треугольник Паскаля. Решение.

О квадратных скобках

Сегодня мы поговорим о квадратных скобках и их правильном использовании.

Историческая справка

Когда-то мониторы были плохими, и графические режимы были для них страшным мучением. Как правило, мониторы переключались из текстового режима в графический не совсем мгновенно, экран при этом неприятно мигал. Использование разработчиками графического режима без острой необходимости (то есть, не для отображения рисунков, схем или графиков) вызывало у пользователей раздражение. Операционной системой на компьютерах простых смертных стоял MS-DOS, где подавляющее большинство программ работали в текстовом режиме, 80×25 строк.

Однако даже в текстовом режиме разработчики пытались изображать в своих программах какие-то элементы графического интерфейса: окна, меню и кнопки. А чтобы их изобразить, нужны были рамочки.

В качестве дешёвого способа нарисовать рамочки таблица ASCII предлагала псевдографику — набор символов, представляющих собой всевозможные края одинарных и двойных рамочек, а также стыковок между ними:

Программы, интерфейс которых был построен на библиотеке Turbo Vision (среди них DOS Navigator, Turbo Pascal 6-й и 7-й версий), пользовались псевдографикой с особым размахом, умудрясь рисовать объёмные кнопки:

Когда кнопку нажимаешь, она действительно нажимается.

Некоторые разработчики ленились использовать псевдографику, и прибегали к ещё более дешёвому способу изобразить кнопку — поставить квадратные скобки и написать между ними название:

В текстовом режиме, из-за того, что все символы имеют одинаковую ширину и высоту, экран воспринимается такой матрицей, где квадратные скобки (как и всё остальное) занимают свои ячейки. Поэтому недостающие верхняя и нижняя рамки как бы дорисовываются пользователем уже подсознательно. Конечно, вариант из Turbo Vision воспринимается лучше, но этот тоже можно терпеть.

Квадратные скобки в русском языке

На самом деле, квадратные скобки придумали совсем не для того, чтобы дешёвые кнопки рисовать в DOS’е, и даже не для того, чтобы индексы массивов указывать в языках программирования. Квадратные скобки, как и круглые скобки, точки, запятые, знаки восклицательный и вопросительный, многоточия, тире, и многое другое, являются пунктуационными знаками русского языка (и не только русского, конечно). Квадратные скобки используются, во-первых, как скобки второго уровня, по аналогии с «кавычками „лапками“», и, во-вторых, при цитировании.

При цитировании они могут использоваться для пояснений:

А вот на большее, вот этих самых ребят не хватает. [С пафосом] Но они базис. вот этого самого. прекрасного действа под названием супер-игроки, современные супер-игроки в снукер.

(Приведён кусок из заметки про Сашу Елисейкина, где квадратные скобки используются мной по назначению.)

А ещё они могут указывать на отклонение от оригинала:

В оригинале При цитировании
Что касается Василия, то известно, что он останавливался в гостинице «Невада», потом несколько дней бомжевал, а в настоящее время проживает в отеле «Калифорния». Как пишут в журнале West Coast Digest, «[Василий] останавливался в гостинице „Невада“ [. ] а в настоящее время проживает в отеле „Калифорния“».

Как видим, квадратные скобки — это не рамочки, которыми нужно ограничивать кнопки.

Квадратные скобки в сегодняшнем вебе

Сегодня в вебе квадратные скобки используются как угодно, только не по назначению. Больше всего в них любят заключать пункты меню:

Их используют тупо как первый подвернувшийся под руку разделитель, видимо, помня, что где-то такое использование уже видели. При этом не учитывается, что в графическом режиме эффекта «матрицы», о котором шла речь выше, не создаётся, и поэтому это совершенно не похоже на кнопку. Когда ссылки, заключённые в квадратные скобки, ещё и подчёркивают, становится и вовсе страшно: линия подчёркивания не совпадает по высоте с уголками квадратных скобок, и, кроме того, начинает ещё острее ощущаться отсутствие такой же линии сверху. А особый вид извращения — это взять кнопку в квадратные скобки, подчеркнуть и при этом выделить курсивом.

Такие «кнопки» выглядят неряшливыми, сделанным «на коленке» за полторы минуты.

Уже во времена DOS была возможность нарисовать кнопку более натурально, чем с помощью квадратных скобок — и разработчики Turbo Vision этим успешно пользовались, — что уж говорить о сегодняшнем дне. Даже в Photoshop ходить не надо, CSS всегда под рукой. Возьми и сделай кнопку, раз так хочется!

А ещё лучше подумать, нужен ли вообще этот закос под кнопки, или всё же не выпендриваться, а сделать просто нормальные текстовые ссылки.

Квадратные скобки в паскале для чего

А если стек уже по сути есть, то зачем заводить еще один? Нафига два цикла когда можно воспользоваться одним?

Да нету у Вас стека! А то, что Вы предлагаете — и есть организация стека с помощью строки (по сути строка — это массив символов, а стек легко может быть смоделирован с помощью массива и индекса(позиции) в этом массиве).

впрочем, по сути я с вами согласен. ещу одна дополнительная строчка быстро и удобно смоделирует стек (вот примерный набросок решения):

isError := false; for i:=1 to Length(s) do if s[i] in ['[','(',''] then if Length(Stek)=0 then begin WriteLn('Ошибка в позиции ',i,' закрывающая скобка без открывающей'); isError := true; Break; end else begin if Stek[Length(Stek)]<>s[i] then begin WriteLn('Ошибка в позиции ',i, ' закрывающая скобка не того типа, что была открывающая - ожидалась скобка ',Stek[Length(Stek)]); isError := true; Break; end else Delete(Stek, Length(Stek), 1); end; if (not isError) and (Length(Stek)=0) then WriteLn('Строка является корректным скобочным выражением!'); if (not isError) and (Length(Stek)>0) then WriteLn('Ошибка, не закрыты открывающие скобки!');
Serge_Bliznykov
Посмотреть профиль
Найти ещё сообщения от Serge_Bliznykov

Регистрация: 26.04.2008
Сообщений: 2,689
Небольшая поправка по строчке

if Stek[Length(Stek)]<>s[i]

условие обязательно выполнится при первом же символе кроме открывающих скобок (а нужно только для закрывающих скобок), поэтому лучше проверить ожидаемое сложным условием

if ((Stek[Length(Stek)]='(')and(s[i]<>')')) or ((Stek[Length(Stek)]='[')and(s[i]<>']')) or ((Stek[Length(Stek)]='<')and(s[i]<>'>')) then . 

Или же в стек добавлять обратные скобки, т.е. вместо

if s[i] in ['[','(','
if s[i] ='[' then Stek := Stek + ']' else if s[i] ='(' then Stek := Stek + ')' else if s[i] ='' else

Регистрация: 09.01.2008
Сообщений: 26,238

eoln, я понял, о чём! Конечно же, когда мы встретили ЗАКРЫВАЮЩУЮ скобку, она НИКАК не будет равна открывающей!

это ошибка с моей стороны, эту мелочь надо учесть и исправить!

могу предложить такой вариант обхода:

const OtrkSkb = '[('; var i: integer; s, Stek: string; isError: boolean; begin s := '( vot < ([ 1+2 ] * 2) >)'; isError := false; Stek := ''; for i := 1 to Length(s) do if Pos(s[i], OtrkSkb) > 0 then Stek := Stek + s[i] else if Pos(s[i], ZakrSkb) > 0 then if Length(Stek) = 0 then begin WriteLn('Ошибка в позиции ', i, ' закрывающая скобка без открывающей'); isError := true; Break; end else begin if Pos(Stek[Length(Stek)], OtrkSkb) <> Pos(s[i], ZakrSkb) then begin WriteLn('Ошибка в позиции ', i, ' закрывающая скобка не того типа, что была открывающая - ожидалась скобка ', Stek[Length(Stek)]); isError := true; Break; end else Delete(Stek, Length(Stek), 1); end; if (not isError) and (Length(Stek) = 0) then WriteLn('Строка является корректным скобочным выражением!'); if (not isError) and (Length(Stek) > 0) then WriteLn('Ошибка, не закрыты открывающие скобки!'); readln end.

Последний раз редактировалось Serge_Bliznykov; 05.07.2012 в 15:46 .

Serge_Bliznykov
Посмотреть профиль
Найти ещё сообщения от Serge_Bliznykov

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *