Как сделать столбики в паскале
Вывести слова в столбик
1) С клавиатуры вводится некоторое предложение. Вывести все его слова в столбик.
2) Введите своё ФИО, как одно текстовое данное. Используя пробел как разделитель между словами вывести на экран:
-Фамилия
-Имя
-Отчество
Удалить все повторные вхождения данного слова из строки и вывести слова в столбик.
Удалить все повторные вхождения данного слова из строки и вывести слова в столбик, т.е. нужно.
Вывести на экран в столбик все слова, которые содержат четное количество символов
Ввести строку, состоящую из слов, разделенных пробелами (в начале, в конце строки и между словами.
В заданной строке найти те слова, которые содержат хотя бы одну букву ‘м’ и вывести их в столбик
В заданной строке найти те слова, которые содержат хотя бы одну букву ‘м’ и вывести их в столбик
Напечатать в столбик слова этого текста от последнего слова до первого
Ввести текст, слова которого разделены одним или несколькими пробелами. В начале и в конце текста.
Решение
Как я понял, там в отличие от первой программы имя вводится слитно, например ИвановИванИванович, и надо всё это дело разделить и вывести с новых строк.
Добавлено через 12 минут
Наверно надо после заглавной буквы вставлять пробел, а потом как в №1 ток я что-то хз как это делать. (
Добавлено через 8 минут
Всё, догадался)
Добавлено через 2 минуты
Извините пожалуйста) Но тут немного по другому)
2) Введите своё ФИО, как одно текстовое данное. Используя пробел как разделитель между словами вывести на экран:
— Фамилия
— Имя
— Фамилия и инициалы
Добавлено через 17 минут
Сорри за флуд, но я неправильно сначала написал условие, правильное чуть-чуть выше. Очень нужно решение, от этого зависит сдаю я экзамены или нет.
Вывести все символы строки «столбиком»
Строки. Удалить все символы в строке после «*»
Помогите решить. Составьте программу, которая как только в строке встретится символ «*», удаляет.
Если длина строки больше заданной, отбросить первые символы, иначе в её начало добавить символы «.»
Дано целое число N (N>0) и строка S.Преобразовать строку S в строку длины N следующим образом:если.
julytab, read(a) на readln(a) замени, т.к. строка в файле кончилась, а ввод нажать некому поэтому TLE
Добавлено через 3 минуты
хотя подозреваю, что сайту что-то типа этого требуется:
Дана строка,сформировать новую строку не включая в неё буквы «а»,»о»,»е» заданной строки
Дана строка,сформировать новую строку не включая в неё буквы «а»,»о»,»е» заданной строки
Дано предложение. Все его символы, стоящие на четных местах, заменить на букву «Ы»
Дано предложение,Все его символы,стоящие на четных местах,заменить на букву Ы
С клавиатуры последовательно вводятся символы до первого символа «!» Подсчитать количество символов «;»
С клавиатуры последовательно вводятся символы до первого символа «!» Подсчитать количество символов.
Вывести все слова из строки в столбик
Если есть возможность, то помогите, пожалуйста, выполнить следующие задачи:
1. Вывести все слова из строки в столбик.
2. Проверить, является ли строка палиндромом (Аргентина манит негра).
3. Подсчитать сумму цифр в строке.
4. Удалить из строки все символы, равные заданному.
5. Подсчитать количество слов в строке, начинающихся на заданную букву.
6. Получить из данной строки новую строку, в которой каждый символ продублировать.
7. Составить программу для диалога с пользователем (3 вопроса).
Вывести на экран в столбик все слова введённого текста, исправить опечатки и напечатать исправленный текст
Помогите пожалуйста..При вводе текста могут быть допущены следующие опечатки: в некоторых словах.
Строки. Вывести на экран все слова, в которых все буквы разные
Дан текст из слов, разделенных пробелами. Вывести на экран все слова, в которых все буквы разные.
Вывести на экран все слова строки, которые начинаются на вводимый с клавиатуры символ
Дана строка, состоящая из 4 слов. Вывести на экран все слова строрки, которые начинаются на.
Решение
2. Проверить, является ли строка палиндромом (Аргентина манит негра).
Добавлено через 1 минуту
3. Подсчитать сумму цифр в строке.
Добавлено через 43 секунды
7. Составить программу для диалога с пользователем (3 вопроса).
Добавлено через 18 минут
4. Удалить из строки все символы, равные заданному.
Добавлено через 28 минут
1. Вывести все слова из строки в столбик.
Добавлено через 1 минуту
Помогите, пожалуйста, разобраться с оставшимся вопросом:
6. Получить из данной строки новую строку, в которой каждый символ продублировать.
Строки. Выбрать все слова, имеющие нечетную длину, вывести их на экран в обратном порядке.
Строка содержит несколько слов, между соседними словами не менее одного пробела, за последним.
Вывести в новый файл все слова, отличные от последнего слова
В файле содержится последовательность слов, разделенных пробелом. Текст заканчивается точкой.
вводится последовательность слов,вывести все слова отличные от слова hello
Кароче нужно удалить из предложения слово hello, буду весьма благодарен если поможете
Строки: ввести фамилию, имя и отчество, вывести имя в столбик
Ввести фамилию, имя и отчество как одно данное строкового типа. Вывести имя в столбик.
Ввод-вывод данных в Pascal
Компьютерные программы обрабатывают (изменяют) различные данные. Программа получает данные, что-то делает с ними и выводит их в измененной форме или выводит другие данные.
Откуда или с помощью чего можно ввести данные в программу? Обычно это можно сделать с помощью клавиатуры или из файлов.
Куда можно вывести данные? На экран, в файл, на принтер и др.
Стандартным устройством ввода является клавиатура, а вывода — монитор. Стандартные — значит «работающие по-умолчанию»; т.е. если не указано ничего иного, то программа будет считывать данные с клавиатуры, а выводить их на монитор. Вместе клавиатуру и монитор называют консолью. Таким образом консоль представляет собой стандартное устройство ввода-вывода.
Вывод данных на экран. Форматированный вывод
Write() чаще используется, когда надо вывести для пользователя сообщение на экран, после чего получить данные, не переводя курсора на новую строку. Например, выводим на экран «Введи число: » и не переводим курсор на новую строку, а ждем ввода.
Еще один пример. В памяти компьютера хранятся данные. Из программы мы обращаемся к ним с помощью переменных num, fl и st. Вывести их значения на экран можно по-разному.
Во втором случае мы видим, что процедуры вывода (как write() так writeln() ) позволяют конструировать выводимую информацию из различных компонент (строк-констант и переменных).
В третьем случае был осуществлен так называемый форматированный вывод. При этом для выводимого значения указывается ширина поля вывода (количество знакомест). Если мы выводим вещественное (дробное) число, то вторым числом через двоеточие указывается количество знаков после запятой. Если для вещественных чисел не осуществлять форматирование, то они отобразятся так, как определено для данного компьютера. Если указать только число знакомест без фиксирования дробной части, то вывод будет в экспоненциальной форме.
Ввод данных с клавиатуры
Когда данные вводятся, то они помещаются в ячейки памяти, доступ к которым обеспечивается с помощью механизма переменных. Поэтому, когда в программе на Pascal используется процедура read() (или readln() ), то в качестве фактического параметра (аргумента) ей передается имя переменной, которая будет связана с вводимыми данными. Потом эти данные можно будет использовать в программе или просто вывести на экран.
В процедуры ввода можно передавать не один фактический параметр, а множество.
При вводе данных их разделяют пробелом, табуляцией или переходом на новую строку (Enter). Данные символьного типа не разделяются или разделяются переходом на новую строку.
Pascal: Занятие № 13. Записи в Паскале
Записи в Паскале
Записи в Паскале – структурированный комбинированный тип данных. Запись состоит из определенного числа компонент, называемых полями, которые могут быть разного типа.
Описание записи в Паскале
Общий вид описания типа record в Паскаль:
Но лучше создавать пользовательский тип записи и использовать переменную данного типа:
Рассмотрим примеры объявления и создания записи в Паскале.
type mydate = record month: 1..12; day: 1..31; year: integer end; var d: mydate;
Обращение к полям записи
type mydate = record month: 1..12; day: 1..31; year: integer end; var d: mydate; begin d.day:=1; d.month:=12; readln(d.year); writeln(d.day,’/’,d.month,’/’,d.year); end.
Записи в виде двумерной таблицы
Часто записи используются в виде двумерной таблицы, каждый столбец которой имеет свой тип.
Таким образом, если описана двумерная таблица, то ее начальные значения задаются как вектор, каждый компонент которого является записью.
Рассмотрим пример использования записи-таблицы:
1 | 2 | 3 | |
---|---|---|---|
Day | 2 | 14 | 14 |
Month | 1 | 2 | 12 |
Year | 1985 | 1987 | 1989 |
Задать данные таблицы в виде записи. Объявить массив дней рождения и вывести дату первого дня рождения.
type zap1= record day:1..31; month: 1..12; year: 1900..2100; end; var birthdays:array[1..100] of zap1; begin birthdays[1].day:=2; birthdays[2].day:=14; birthdays[3].day:=14; birthdays[1].month:=1; birthdays[2].month:=2; birthdays[3].month:=12; birthdays[1].year:=1985; birthdays[2].year:=1987; birthdays[3].year:=1989; writeln(birthdays[1].day); end.
Использование конструкции with при работе с записями
При работе с записями есть возможность избавиться от постоянного префикса в виде обращения к названию переменной. Сравним два примера:
Во втором примере значительно проще обращаться к полям записи, избавившись от префикса, благодаря with
Внимание: Ключевое слово with при работе с массивами:
Записи при работе с файлами
type t_subscriber = record surname: string[20]; tel: LongInt; end; var subscriber: t_subscriber; f: file of t_subscriber; i: Integer; begin Assign(f,’notebook.dat’); Rewrite(f); for i:=1 to 5 do begin with subscriber do begin Write(‘Surname: ‘); ReadLn(surname); Write(‘Phone: ‘); ReadLn(tel); end; Write(f, subscriber); end; Close(f); end.
// Запись в файл: write(f, toys[1]); // Считывание из файла: read(f,toys_1[1]);
Рассмотрим пример последовательного доступа к типизированному файлу с использованием записей:
type t_subscriber = record surname: string[20]; tel: integer; end; var subscriber: t_subscriber; f: file of t_subscriber; s: string; begin Assign(f,’z:\pascal.dat’); rewrite(f); subscriber.surname:=’ivanov’; subscriber.tel:=36233357; write(f,subscriber); subscriber.surname:=’petrov’; subscriber.tel:=236244475; write(f,subscriber); close(f); Reset(f); while not Eof(f) do begin Read(f, subscriber); with subscriber do begin Str(tel,s); if Copy(s,1,3) = ‘362’ then tel := tel+2000000; end; Seek(f,FilePos(f)-1); // возврат указателя назад Write(f,subscriber); Writeln(subscriber.surname, ‘ ‘,subscriber.tel); end; Close(f); end.
Множества в Паскале
Множества в Паскале — это некоторое собрание элементов, одно и того же базового типа.
В качестве базового типа может выступать любой простой порядковый тип. Базовым типом не могут быть вещественные числа (real не порядковый тип) и строки (не простой и не порядковый тип).
Размер множества в Turbo Pascal всегда ограничен некоторым предельно допустимым количеством элементов. Во множествах допускаются только такие элементы, порядковые значения которых не выходят за границы 0..255. В Turbo Pascal в целочисленных множествах могут присутствовать только числа от 0 до 255.
Отрицательные элементы множеств в Turbo Pascal не допускаются. Поэтому базовыми типами не могут быть типы shortint, integer, longint.
type week_days = (Mon, Tue, Wed, Thu, Fri, Sat, Sun); var work_days: set of week_days; begin work_days:=[Mon, Wed, Thu]; end.
Из примера видно, что множества (тип set ) задаются путем перечисления значений, разделенных запятыми и заключенных в квадратные скобки.
Синтаксис:
name_set:=[expr1, expr2, … exprn];
Возникает логичный вопрос: как же тогда работать с множествами в Паскале?
Чтобы ответить на данный вопрос, сначала рассмотрим операции, выполняемые над множествами.
Действия над множествами
Объединение двух множеств A и B ( A + B ) – это новое множество, состоящее из элементов, принадлежащих множеству A или B либо тому и другому одновременно
Пример:
Пример:
var ch1, ch2, ch3: set of char; begin ch1:=[‘a’, ‘b’, ‘d’]; ch2:=[‘m’, ‘d’, ‘e’]; ch3:=ch1 * ch2; <Результат: ch3 = ['d'] >end.
Пример:
var ch1, ch2, ch3: set of char; begin ch1 := [‘a’, ‘e’, ‘t’]; ch2 := ch1 – [‘e’]; < ['a', 't'] >ch3 := [‘m’, ‘n’, ‘t’] – ch2; < ['m', 'n'] >end.
Множества и операция IN в Паскале
var voron, vorona, voroni: set of byte; number:integer; begin voron:=[5,6,7,8,9,10]; vorona:=[1]; voroni:=[2,3,4]; writeln (‘введите количество ворон’); readln(number); if number in voron then writeln (‘на ветке ‘, number,’ ворон’); if number in vorona then writeln (‘на ветке ‘, number,’ ворона’); if number in voroni then writeln (‘на ветке ‘, number,’ вороны’) end.
Требуется написать программу, которая в зависимости от числа добавляет правильное окончание.
var m : set of char; s : string; i : byte; begin write(‘строка: ‘); readln(s); m :=[]; i := 1; while i ‘_sdfs234’ вернет значение true, тогда как строка равная ‘_sdfs`234’ вернет false)
type t_chs = set of Char; const lett: t_chs = [‘a’..’z’,’A’..’Z’,’_’]; num: t_chs = [‘0’..’9′]; var str: string; i: byte; flag: boolean;
Описание переменных:
str — проверяемая строка;
flag — переменная-флаг для хранения информации о том, корректна ли строка.
Тип и константы:
t_chs — множество всех возможных символов;
lett — множество, содержащее английские буквы и знак подчеркивания;
num — множество, содержащее цифры.