Неожиданный символ паскаль
Среда языка программирования Pascal ABC
Дата добавления: 2015-06-12 ; просмотров: 2461 ; Нарушение авторских прав
Первая версия языка Паскаль была разработана в 1968 году. Ее разработчиком является швейцарский ученый Никлаус Вирт. Свое название язык получил в честь создателя первой механической вычислительной машины француза Блеза Паскаля. На основе языка Паскаль в 1985 г. фирма Borland выпустила версию Turbo Pascal версии 3.0. С этого времени язык Паскаль используется во всем мире в учебных заведениях в качестве первого изучаемого языка программирования.
Система Pascal ABC основана на языке Delphi Pascal и призвана осуществить постепенный переход от простейших программ к объектно-ориентированному программированию.
Составление последовательности команд для решения конкретных задач на языке программирования называется разработкой программ, либо программированием.
Для вызова среды программирования Pascal ABC необходимо запустить на выполнение файл PascalABC.exe или загрузить среду посредством ярлыка, если он существует на рабочем столе.
Для создания нового файла необходимо выполнить следующие действия: Файл/Новыйили нажать кнопку на панели инструментов.На экране откроется чистое окно с именем Program1.pas. , его при сохранении файла желательно изменить.
При вводе и редактировании текста программы используются такие же приемы, как и при работе в текстовом редакторе. С помощью команды Помощь/Содержание можно ознакомиться со справочной системой Pascal ABC.
Для сохранения программы необходимо выполнить команду Файл/Сохранить как…имя файла, или нажать кнопку на панели инструментов, если необходимо сохранить существующую уже программу.
Для загрузки программы из файла необходимо выполнить команду Файл/Открыть выбрать файл или нажать кнопку на панели инструментов.
Для выполнения программы необходимо выполнить команду Программа/Выполнить, либо нажать клавишу F9, либо нажать кнопку .
Если в программе отсутствуют ошибки, на экране монитора можно увидеть результат выполнения программы. При обнаружении ошибок курсор устанавливается в области ошибки, а в окне вывода выдается сообщение об ошибке. В этом случае следует исправить ошибки и снова выполнить программу.
Наиболее часто встречающиеся ошибки при работе в системе программирования Pascal ABC:
· «неожиданный символ» — символ введен не с регистра английских букв;
· «ожидался символ «точка», «точка с запятой», Begin и др.»- отсутствует необходимый символ или команда;
· «неизвестное имя» — неправильно введена команда;
· «ошибка ввода» — неверно указано имя файла;
· «ожидался конец файла» — ошибки в команде end.
лабы по информатике, егэ
лабораторные работы и задачи по программированию и информатике, егэ по информатике
Pascal: Занятие № 11. Строковый тип данных в Паскаль
Символьный тип char в Паскале
Символьной переменной соответствует тип char:
Инициализация символьной переменной:
Основные функции для работы с символами
Функция преобразует целое число, имеющее тип BYTE, в один символ ASCII-кода:
Функция возвращает порядковый номер символа параметра в таблице ASCII:
var i: integer; begin for i:=32 to 255 do write(chr(i):3); end.
Строковые переменные в Паскаль
Строковые переменные в Паскале имеют тип String
Объявление и инициализация строковой переменной:
var a:string; begin a:=’Привет всем!’; writeln(a); end.
Ввод значения строковой переменной с клавиатуры:
var a:string; begin writeln(‘Введите слово’); readln(a); writeln(‘Вы ввели слово ‘,a); end.
Строка «рассматривается» компилятором, как массив букв:
Функции работы со строками в Pascal
var s:string[30]; n,i:integer; begin writeln(‘введите текст’); readln(s); n:=0; for i:=1 to length(s) do if s[i]=’f’ then n:=n+1; write(‘в тексте букв f = ‘,n) end.
const m = [‘1’..’9′]; var s: string; i, k: byte; begin read(s); k := 0; for i := 1 to length(s) do if s[i] in m then inc(k); writeln(‘цифр = ‘, k); readln; end.
var a,b,c:string; i:longint; begin write(‘введите слово:’); readln(a); b:=»; for i:=1 to length(a) do b:=a[i]+b; if a=b then write(‘перевертыш’) else write(‘не перевертыш’); end.
String 6. Определить, встречается ли в тексте сочетание букв «ку».
String 7. Заменить данную букву в слове другой буквой (буквы вводит пользователь).
Примечание:
Использовать функции: Pos, Copy, Delete
Посимвольный ввод до пробела
Посимвольный ввод удобен для «мгновенной» обработки символов в строке.
Для организации массива символьных строк:
- Все данные разделяются одним пробелом. Нужно подсчитать, сколько студентов получили отметку 5.
- Вывести фамилии студентов, у которых оценка 2.
- Вывести фамилии студентов, родившихся в 1996 году.
Пример:
Входной текст: Алгоритм — это правила выполнения определенных действий!, предписание исполнителю! совершить последовательность действий!, набор команд для компьютера!
Выходной текст: Алгоритм — это правила выполнения определенных действий, предписание исполнителю! совершить последовательность действий, набор команд для компьютера!
Трудность низкая:
Программа должна формировать в памяти вторую строковую переменную с измененным текстом, а потом выводить ее на экран.
Трудность высокая:
Программа должна преобразовывать исходную строку без использования дополнительных переменных, и затем выводить ее на экран.
И напоследок рассмотрим олимпиадное задание по Паскалю:
* Решить ту же задачу, в которой сдвиг будет не на 3 позиции, а на k, причем отрицательное значение является признаком сдвига влево, положительное — вправо.
var a:char; i,n:byte; s,s1:string; begin s1:=»; readln(s); for i:=1 to length(s) do begin n:=ord(. ); n:=n+3; if n=123 then n:=97; <в ASCII 120 - x, 97 - a>if . ; <в ASCII 121 - y, 98 - b>if . ; <в ASCII 122 - z, 99 - c>a:=chr(. ); s1:=. ; end; writeln(s1) end.
Потренируйтесь в решении задач по теме, щелкнув по пиктограмме:
Строковый тип данных в Паскале
Строки в Паскале – это данные типа string. Они используются для хранения последовательностей символов. В Паскале длина стандартной строки ограничена 255 символами. Под каждый символ отводится по одному байту, в котором хранится код символа. Кроме того, каждая строка содержит еще дополнительный байт, в котором хранится длина строки.
Если заранее известно, что длина строки будет меньше 255 символов, то программист может сам задать максимальную длину строки.
Примеры описания строк:
Длина строки хранится в первом ее байте, индекс которого равен 0.
Объявление типизированной константы для типа string осуществляется так:
Существует понятие пустой строки, т.е. строки, которая не имеет элементов. Пустая строка обозначается двумя рядом стоящими апострофами (например, st = «color : #339 933 ; «> : = = «color : #ff0000 ; «> » ).
Операции над строками
Строки можно присваивать друг другу. Если максимальная длина переменной слева меньше длины присваиваемой строки, то лишние символы справа отбрасываются.
Строки можно объединять с помощью операции конкатенации, которая обозначается знаком +.
Строки можно сравнивать друг с другом с помощью операций отношения. При сравнении строки рассматриваются посимвольно слева направо, при этом сравниваются коды соответствующих пар символов. Строки равны, если они имеют одинаковую длину и посимвольно эквивалентны. В строках разной длины существующий символ всегда больше соответствующего ему отсутствующего символа. Меньшей будет та строка, у которой меньше код первого несовпадающего символа (вне зависимости от максимальных и текущих длин сравниваемых строк).
Имя строки может использоваться в процедурах ввода-вывода. При вводе в строку считывается из входного потока количество символов, равное длине строки или меньшее, если символ перевода строки (который вводится нажатием клавиши Enter) встретится раньше. При выводе под строку отводится количество позиций, равное ее фактической длине.
К отдельному символу строки можно обращаться как к элементу массива символов, например s1 = «color : #009 900 ; «> [ = «color : #cc66cc ; «> 3 = «color : #009 900 ; «> ] . Символ строки совместим с типом char, их можно использовать в выражениях одновременно, например:
Можно осуществлять коррекцию любого символа строковой переменной, для чего в соответствующем операторе достаточно указать имя переменной типа string, вслед за которым в квадратных скобках задается номер ее элемента (например, str [ 3 ] : = ‘j’ ).
Элементы строки нумеруются с единицы, т.к. в каждой строковой переменной имеется элемент с номером 0, в котором в виде символа хранится длина текущей строки. Чтобы узнать текущую длину, достаточно применить функцию ord к нулевому элементу строки. Например:
Нулевой элемент строковой переменной можно корректировать. При этом будет изменяться текущая длина строки. Например, выражение str [ 0 ] : = #50 устанавливает текущую длину равной 50.
Введение в Pascal
Вы находитесь в разделе материалов по пограммированию на Паскале. Перед тем как начать программировать, надо прояснить некоторые понятия, которые нам понадобятся в начале. Ведь просто так программировать нельзя. Мы не можем записать программу словами – компьютер кроме нулей и единиц больше ничего не понимает. Для этого в Паскале создана специальная символика – язык Паскаля, набор зарезервированных слов, которые нельзя использовать в своих программах больше нигде, кроме как по назначению. Перечислим основные понятия, которые нам понадобятся в начале:
✎ 1) program – по-английски «программа», пишется в самом начале кода, после чего идет название программы латиницей и точка с запятой. Например: program Summa; − программа под названием Summa. Но эту часть кода, называемую заголовком программы, можно и не писать − она присутствует только для наглядности и показывает, какую задачу решает данная программа. Здесь мы употребили слово «код» − так называется текстовая запись программы.
✎ 2) integer – по-английски означает «целое число» (или просто «целое») и в Паскале используется для обозначения 32-битных (8 байт) целых чисел со знаком с диапазона [-2147483648, 2147483647] . Что означают эти большие числа, мы потом разберем.
✎ 3) real – с английского «реальный», «настоящий», «вещественный», «действительный». В языке Паскаль этим термином обозначаются вещественные числа с диапазона [-1.8∙10 308 , 1.8∙10 308 ] . Это очень большие числа, но значащих цифр выводится 15 – 16. Кстати, типы данных integer и real в среде программирования PascalABC.Net всегда автоматически выделяются синим цветом.
✎ 4) const – аналог англ. «constant», означающее «постоянная», «константа». В Паскале это величина, которая не может изменяться. Записывается так:
Эту запись надо воспринимать так, как она пишется: число N равно 12, S равно 5, «пи» равно 3,14 (как и в математике, только вместо запятой в Паскале используется точка). В последней строке мы использовали двойной слэш (две косые черты), после которых идет текст, – так в Паскале пишутся комментарии, и их программа не воспринимает. Всё, что начинается двойным слэшом и до конца строки – это комментарий, который пишется для пояснения к программе и всегда выделяется другим цветом (в PascalABC.Net — это зеленый , в Turbo Pascal не используется такой вид комментария). Существует и другой тип комментария – это <текст, заключенный в фигурные скобки, так же, как и здесь, тоже выделяющийся зеленым цветом>. Этот вид комментария может действовать несколько строк подряд – от начала скобки и до её закрытия, и всё, что находится в середине такой конструкции, компилятор не воспринимает как код и просто пропускает.
В действительности формат записи const немножко сложнее. По правилам мы должны были записать:
После объявления каждой величины указывается её тип, а потом присваивается значение. Но предыдущая запись тоже верна, поскольку компилятор Паскаля настроен так, что он автоматически определяет тип постоянной. Но этого нельзя сказать о следующем типе чисел – переменных.
✎ 5) var – происходит от англ. «variable» («переменная», или «изменчивый»), что в Паскале означает величину, которая в процессе программы может изменять свое значение. Записывается так:
Как видно из записи, знака «=» здесь нет – пересчитываются переменные одного типа (через запятую) и после двоеточия указывается только тип. Переменные N, m (целые) и Q, r, t (вещественные) в программе могут изменять значения в пределах integer и real соответственно. Ещё одно замечание: описание переменных всегда стоит после описания констант (постоянных) – сначала идет конструкция const , а потом var .
✎ 6) begin – в переводе с английского означает «начинать» и Паскале означает начало основной программы, в которой записываются команды (операторы). После слова begin точка с запятой не ставится.
✎ 7) end – по-англ. «конец», и в языке Pascal означает то же (конец программы). После последнего слова end всегда стоит точка. Мы выделили слово «последнего», поскольку использование конструкции begin – end возможно ещё в одном случае: это так называемые операторные скобки, которые применяются для объединения нескольких операций под одним оператором. Но об этом потом. Таким образом, основная программа будет выглядеть так:
Здесь операторы в теле программы – это разные команды компилятору.
✎ 8) write – по-английски означает «писать». Этот оператор выводит на экран текст, помещенный в него, поэтому так и называется – оператор вывода. Текст, помещенный в него, выделяется синим и записывается так:
write( ‘этот текст выведен на экране’ );
Сообщение, находящееся в скобках и кавычках, будет показано в окне консоли (просто в скобках без кавычек нельзя). После выполнения этого оператора мы увидим на экране:
этот текст выведен на экране
В таком виде оператор write используется в том случае, когда надо показать подсказку, пояснение, комментарий и т. п. А от если необходимо вывести ещё и числовое значение, скажем, S = 50 кв. м, то используется формат:
write( ‘Величина площади равна: S = ‘ , S);
В результате получим на экране результат:
Величина площади равна: S = 50
А при необходимости вывести единицы измерения, надо после S снова вставить текст в кавычках:
write( ‘Величина площади равна: S = ‘ , S, ‘ кв.м’ );
После выполнения последнего оператора вывода получим вывод на экран:
Величина площади равна: S = 50 кв.м
✎ 9) writeln – то же, что и write, но после выполнения курсор будет переведен на следующую строку.
✎ 10) read – в переводе с английского означает «читать», поэтому read называется оператором считывания, или ввода данных. Записывается как read(N), что означает необходимость ввода величины N, где N – любое число, или текст, или другой тип переменной. Например, если надо ввести возраст человека, которому 32 года, мы можем записать так:
Программирование. Строки и символы в PascalABC.net
Как организовать дистанционное обучение во время карантина?
Помогает проект «Инфоурок»
Описание презентации по отдельным слайдам:
Программирование. Строки и символы в PascalABC.net Автор: Комкова М.С. Учитель ИКТ, гимназия МИИТ, г. Москва
Описание переменных: Строки в Паскале – это данные типа string. var s: string; s1: string[9]; s2: shortstring; // синоним string[255] Они используются для хранения последовательностей символов.
В Паскале длина стандартной строки ограничена 255 символами. Под каждый символ отводится по одному байту, в котором хранится код символа. Кроме того, каждая строка содержит еще дополнительный байт, в котором хранится длина строки.
Примеры описания строк: var s: string; s1: string[9]; s2: shortstring; begin s := ‘PascalABC.NET’; writeln(s,’ ‘,s.Length); SetLength(s,20); writeln(s,’ ‘,s.Length); s1 := s; writeln(s1,’ ‘,s1.Length); end.
Символ строки К отдельному символу строки можно обращаться как к элементу массива символов, например s1[3]. Символ строки совместим с типом char, их можно использовать в выражениях одновременно, например: … s1[3] := ‘h’; writeln (s2[3] + ‘r’);
Чтобы узнать текущую длину, достаточно применить функцию ord к нулевому элементу строки. Например: … writeln(ord(st[0]));
Процедуры и функции для работы со строками Функция Concat (s1, s2, . sn) возвращает строку, являющуюся слиянием строк s1, s2, . sn. Функция Copy (s, start, len) возвращает подстроку длиной len, начинающуюся с позиции start строки s. Процедура Delete (s, start, len) удаляет из строки s, начиная с позиции start, подстроку длиной len.
Процедуры и функции для работы со строками Процедура Insert (subs, s, start) вставляет в строку s подстроку subs, начиная с позиции start. Функция Length (s) возвращает фактическую длину строки s, результат имеет тип byte. Функция Pos (subs, s) ищет вхождение подстроки subs в строку s и возвращает номер первого символа subs в s или нуль, если subs не содержится в s.
Строки и массивы символов array of char рассматриваться как строка постоянной длины
Вставка подстроки Задача: Вставить в заданную позицию строки другую строку. var s1,s2: string; i: byte; Begin write(‘Программа для вставки в заданную позицию строки другую строку’); write(‘Введите первый текст: ‘); readln(s1); write(‘Введите второй текст: ‘); readln(s2); write(‘Введите номер позиции, в которую надо вставить второй текст: ‘); readln(i); insert(s2,s1,i); writeln(s1); end.
Замена подстроки в строке var s,s_old,s_new: string; i,l_old: byte; begin write(‘Ведите текст: ‘); readln(s); write(‘Что заменить?’); readln(s_old); l_old := length(s_old); write(‘ Чем заменить? ‘); readln(s_new); i := pos(s_old,s); delete(s,i,l_old); insert(s_new,s,i); writeln(s); readln end. Задача: Найти в строке определенную последовательность символов и заменить ее другой.
Копирование части строки Задача: Скопировать часть строки с определенной позиции и определенной длины в другую строку. var s1,s2: string; n,len: byte; begin write(‘Введите текст: ‘); readln(s1); write(‘Введите номер позиции, с которой будет копироваться строка: ‘); read(n); write(‘Введите длину копируемой части: ‘); readln(len); s2 := copy(s1,n,len); writeln(‘Ты скопировал: ‘,s2); readln; end.
Задача Дана непустая строка S и целое число N (>0). Вывести строку, содержащую символы строки S, между которыми вставлено по N символов «*» (звездочка). program zvezda; Var s:string; N,i:integer; C:char; Begin Writeln(‘stroka’); Readln(s); Writeln(‘n’); Readln(n); C:=’*’; For i:=1 to n do Insert(c,s,n); Writeln(S); End.
Из заданной символьной строки выбрать те символы, которые встречаются в ней только один раз Задача program m2; var s:String; i,j,n,k:Integer; f:Boolean; begin Writeln(‘Введите строку:’); Readln(s); n:=Length(s); for i:=1 to n do begin f:=True; for j:=1 to n do if (i<>j) and (s[i]=s[j]) then f:=False; if f and (k=0) then Writeln(‘Символы,которые встречаются в строке один раз:’); if f then begin Write(s[i],’ ‘); inc(k); end; end; if k=0 then Writeln(‘В строке нет символов которые встречаются всего один раз.’); Readln; end.
Источники http://templated.ru/ingeneriya/117-informacionnye-tehnologii.html http://pascalabc.net/wiki/index.php?title=Строки_и_символы._Тексты_программ http://www.cyberforum.ru/pascalabc-net/thread1266946.html http://pas1.ru/book/export/html/300 http://programmado.ru/55-stroki-v-paskale-tip-string.html http://mojainformatika.ru/paskal/uroki-paskal-stroki/116-stroki-v-paskal.html http://nschool.by/text.php?cat=library&textid=10
Выберите книгу со скидкой:
История России. С древнейших времен до XVI века. 6 класс. Контурные карты
350 руб. 55.00 руб.
Контурные карты История России конец XVII-XVIII век. 8 класс. (Новые)
350 руб. 55.00 руб.
История России. 7 класс. Рабочая тетрадь.
350 руб. 137.00 руб.
История России. 6 класс. Рабочая тетрадь.
350 руб. 137.00 руб.
История России XX-начало XXI в. Атлас с контурными картами.
350 руб. 106.00 руб.
История России. XVI-конец XVII века. 7 класс. Контурные карты
350 руб. 55.00 руб.
История России. 8 класс. Рабочая тетрадь. История России. 8 класс. Рабочая тетрадь.
350 руб. 137.00 руб.
История России XIX – начало XX века. 9 класс. Контурные карты (Историко-культурный стандарт)
350 руб. 55.00 руб.
История России. 9 класс. Рабочая тетрадь.
350 руб. 137.00 руб.
ЕГЭ. История России в таблицах и схемах для подготовки к ЕГЭ. 10-11 классы
350 руб. 80.00 руб.
ЕГЭ. История России в таблицах и схемах. 10-11 классы
350 руб. 80.00 руб.
История России в рассказах для детей. ХV — ХVII века
350 руб. 137.00 руб.
БОЛЕЕ 58 000 КНИГ И ШИРОКИЙ ВЫБОР КАНЦТОВАРОВ! ИНФОЛАВКА
Инфолавка — книжный магазин для педагогов и родителей от проекта «Инфоурок»
Бесплатный
Дистанционный конкурс «Стоп коронавирус»
- Приходько Мария Сергеевна
- Написать
- 1619
- 18.03.2016
Номер материала: ДВ-536571
Добавляйте авторские материалы и получите призы от Инфоурок
Еженедельный призовой фонд 100 000 Р
- 18.03.2016
- 1806
- 18.03.2016
- 2745
- 18.03.2016
- 554
- 18.03.2016
- 18074
- 18.03.2016
- 527
- 18.03.2016
- 628
- 18.03.2016
- 461
Не нашли то что искали?
Вам будут интересны эти курсы:
Все материалы, размещенные на сайте, созданы авторами сайта либо размещены пользователями сайта и представлены на сайте исключительно для ознакомления. Авторские права на материалы принадлежат их законным авторам. Частичное или полное копирование материалов сайта без письменного разрешения администрации сайта запрещено! Мнение редакции может не совпадать с точкой зрения авторов.
Ответственность за разрешение любых спорных моментов, касающихся самих материалов и их содержания, берут на себя пользователи, разместившие материал на сайте. Однако редакция сайта готова оказать всяческую поддержку в решении любых вопросов связанных с работой и содержанием сайта. Если Вы заметили, что на данном сайте незаконно используются материалы, сообщите об этом администрации сайта через форму обратной связи.