Напишите программу которая запрашивает ввод с клавиатуры имени пользователя а затем приветствует его
Перейти к содержимому

Напишите программу которая запрашивает ввод с клавиатуры имени пользователя а затем приветствует его

Урок 3. Первая программа в Pascal

HelloWorl

Обычно, изучение любого языка программирования начинается с программы Hello, world! Но мы с вами займемся этим чуть попозже, потому что сейчас я хочу рассказать вам о величинах и типах данных в Pascal.

Виды величин

Обычно, изучение любого языка программирования начинается с программы Hello, world! Но мы с вами займемся этим чуть попозже, потому что сейчас я хочу рассказать вам о величинах и типах данных в Pascal. Что такое величина? Величина — это отдельный информационный объект, хранящийся в памяти компьютера. Существуют две классификации величин. Мы рассмотрим каждую в отдельности.

величины

Более подробно мы поговорим о них в последующих уроках.

В свою очередь числовой делится на два типа.

числовые

Привожу сразу обозначение этого типа в Паскаль

символьные

Символьные тоже делятся на два типа.

величины

Вторая классификация величин.Константа — значение неизменно. Переменная — значение может меняться в течение работы программы. Переменные обозначаются символическими именами, которые называются идентификаторами. Как присвоить значение какой либо переменной? С помощью команды присваивания! Команда присваивания в Паскаль: < переменная >:= < выражение >

Первая программа на Pascal

Структура программы в Паскаль

Заголовок

Program < имя переменной >;

Объявление переменных и констант

const <Символическое имя> = <выражение>;
var <Однотипные переменные> : <тип>;

Раздел операторов

Ввод и вывод в Паскаль

У вас, наверняка, возникает вопрос: «Как вводить значения переменных с клавиатуры?», а также: «Как вывести на экран полученный результат?». Для этого используются четыре специальных оператора:

Для ввода:
  • read(Переменную)
  • readln(Переменную)
И для вывода:
  • write(Текст в »)
  • writeln(Текст в »)

«В чем разница между read и readln, write и writeln?»: снова озадачитесь вы. Ответ прост. Если добавляете «ln» (что расшифровывается, как Line), то курсор переносится на следующую строку.

Hello, World на Pascal

Теперь вы готовы написать первую программу.

Ну, тут все понятно. Чтобы разнообразить решение предлагаю решить несколько задачек этого типа.

Задача 1. Требуется запросить имя пользователя, а затем вывести «Привет, <имя>!» Для решения этой задачи нам потребуется строковой тип данных — string.

Задача 2. Требуется узнать сколько лет пользователю, а затем вывести «Вам <возраст> лет». Очевидно, что для решения этой задачи нам потребуется целочисленный тип данных — Integer.

Ну, вот и все! Все, что я хотел рассказать вам в сегодняшнем уроке. Вы узнали, что такое величина в Pascal, и выучили основные типы. А также научились создавать простейшие линейные программы. Более подробно про типы в PascalABC.Net мы поговорим в следующих уроках. Кстати, про PascalABC.Net. Понятно, что писать программы на листочках бесполезно, и вы должны тренироваться на компьютере. По этой ссылке скачайте последнюю версию PascalABC.Net для Windows.
Вот, как выглядит интерфейс программы при запуске.

PascalABC.Net

P.S. Давайте выделим две особенности Pascal:

  1. Паскаль НЕ чувствителен к регистру, то есть и program, и Program, и PrOgRaM для него ничем не отличаются. А потому с самого начала привыкайте писать в нижнем регистре, чтобы при переходе на другой язык программирования не испытывать никаких проблем с этим;
  2. Имя программы в Pascal не играет никакого значения, оно не несет в себе никаких полезных функций. Если хотите вы можете просто не писать ЕГО!

P.P.S. В мире наиболее популярны три операционные системы: Linux, Mac OS и Windows. А если у вас не Windows? Какой компилятор выбрать тогда? Об этом мы с вами поговорим в уроке номер N.

После компилирования программа закрывается как только выполнит задачу. Нужно чтобы она дождалась нажатия кнопки. Пробовал пару вариантов, но не работает. Подскажите, пожалуйста.

Если вы используете Turbo Pascal, то поставьте после program uses crt; и перед end. readkey;

program aaa;
uses crt;
var a: integer;
read(a);
writeln(a);
readkey;
end.

После begin двоеточие не ставиться.

В объявлении константы есть ошибка: значение не надо присваивать, у константы оно просто равно

P.P.S. В мире наиболее популярны три операционные системы: Linux, Mac OS и Windows. А если у вас не Windows? Какой компилятор выбрать тогда? Об этом мы с вами поговорим в уроке номер N.

Так что же делать обладателям отличных от Windows ОС?

Вообще у вас есть три более-менее простых варианта:

1) Использовать веб среду http://pascalabc.net/WDE/ (не используйте Сафари, попробуйте Хром)
2) Установить FreePascal для Mac OS. У меня, если честно, так и не получилось.
3) Установить виртуальную машину( Windows 7, Windows XP) и на нее установить PascalABC.NET или Turbo Pascal.

Есть ещё Lazarus

есть wine, virtualbox, online pascalabc. чего надо еще?

Как открывать нужные скобки? Если я пишу Hello, world в скобках » » , то у меня вылезает ошибка.

WriteLn(‘Текст’) или Write(‘Текст’)
Внутри обычных скобок когда обозначаем текст (НЕ переменную) то ставим ‘ перед и после текста

Спасибо, я создал программу которая общается с пользователем, объединив эти две задачи.
Получилось вот так:

begin
var name: string;
write(‘Напиши своё имя: ‘);
read(name);
write(‘Молодец, ‘, name, ‘!’);
var years: integer;
writeln(‘Сколько тебе лет?’);
read(years);
write(», years, ‘, значит. А мне ещё и года нету(((‘);
writeln(‘Мне пора на компьютер твоего друга… Пока’);
end.

Что делать если установил ABC Pascal, а после запуска не хочет открываться и нормально работать?

А мне не понравилось, что программа не чувствительна к числам, которые заканчиваются на 1,2,3,4. Получилось немного громоздко, но как сократить пока не придумала)

program Your_age;
var a: integer;
begin
writeln(‘А сколько Вам лет?’);
readln(a);
if (a > 4) and (a 21) and (a mod 10 > 4) then
write(‘Значит, Вам ‘,a,’ лет!’);
if (a 1) and (a mod 10 20) and (a mod 10 > 1) and (a mod 10 < 5) then
write('Значит, Вам ',a,' года!');
if (a mod 10 = 1) and (a 11) then
write(‘Значит, Вам ‘,a,’ год!’)
end.

Подскажите, пожалуйста, возможно ли с помощью линейного алгоритма сделать так, что работала команда ввода read(surname)?
Использую PascalABCNET.
После написания такого кода программа не делает того, с чем прошу мне подсказать:

var
name,surname:string;
begin
writeln(‘Введите, пожалуйста, ваше имя: ‘);
readln(name);
writeln(‘Введите, пожалуйста, вашу фамилию: ‘);
readln(surname);
end.

А вы уверены в том, что она не делает?) У вас ведь нигде и вывода нет.

Вы правы, работает. Вчера ночью почему-то не работало. После перезагрузки компьютера заработало. Наверно, что-то не так пошло, потому что тот же самый код запускал. Хорошо, что работает. Думал, что я не понимаю чего-то.

Вспомнил. Дело не только в этом было. Суть в том, что не работал общий код, который был изначально. Именно это там не работало. Эти 2 ввода игнорировались. После вопроса, где нужно ввести 1 или 2 программа переходила на вопрос о возрасте.

var
name, surname: string;
a, age: integer;

writeln (‘Connection…’);
writeln(‘Доброго времени суток, пользователь программы!’);
writeln(‘Вы находитесь в программной среде высшего интеллектуального творчества человечества.’);
writeln(‘Просьба вести себя осторожно, дышать ровно, следовать инструкциям и быть готовым нести ответственность за принятие своих решений.’);
writeln(‘Вы готовы? 1 — Yes/2 — No’);
writeln(‘Введите число:’);
read(a);

case a of
1:writeln(‘Решение о вашем действии записано в информационное пространство Вселенной. Отмена действий невозможна.’);
0:write(‘Большие решения требуют серьёзной ответственности. Когда будете к этому готовы, можете в любой момент обратиться к программной среде.’);
else writeln(‘У вас только одно право на ошибку. Попробуйте ещё раз ввести 1 или 0.’);
end;

writeln(‘Введите, пожалуйста, ваше имя, чтобы программа вам рассказала о его значении: ‘);
read(name);
writeln(‘Введите, пожалуйста, вашу фамилию, чтобы программа вам рассказала о её значении: ‘);
readln(surname);
writeln(‘Сколько вам лет, ‘,name,’?’);
readln(age);

case age of
2..4,22..24,32..34,42..44,52..54,62..64,72..74,82..84,92..94,102..104,122..124:writeln(‘Вам ‘,age,’ года.’);
1,21,31,41,51,61,71,81,91,101,121:writeln(‘Вам ‘,age,’ год.’);
5..20,25..30,35..40,45..50,55..60,65..70,75..80,85..90,95..100,105..120,125,126:writeln(‘Вам ‘,age,’ лет.’);
else write(‘В настоящее время человечеством не доказано, что человек может столько лет жить на планете Земля.’);
end;
END.

Очень здорово, что программа запустилась. Но на будущее: когда вы просите помощи, лучше прикреплять полный код программы/подпрограммы. Иначе такая помощь выполняется почти вслепую.

Тот, что выше написал, полный код программы. В нём не работает то, что я описал в предыдущем сообщении.
readln(name) и readln(surname) не предлагают ввести данные. Сразу переходит программа на writeln(‘Сколько вам лет, ‘,name,’?’).

Тот, что выше написал, полный код программы. В нём не работает то, что я описал в предыдущем сообщении.
readln(name) и readln(surname) не предлагают ввести данные. Сразу переходит программа на writeln(‘Сколько вам лет, ‘,name,’?’).

writeln(‘Введите, пожалуйста, ваше имя, чтобы программа вам рассказала о его значении: ‘);
readln(name);
нужно писать не read, а readln

Пример 1.1. Простейший алгоритм, запрашивающий имя и затем приветствующий его обладателя.

Школьный АЯ
алг Знакомство (арг лит Имя, резлит t)
нач
вывод «Как тебя зовут ?»
ввод Имя
t := «Привет, » + Имя + «!» | «+» — операция сцепки
вывод t
кон

Turbo Pascal

Program Hello;
Var Name: String; <Описание переменной Name строкового типа>
BEGIN
Write(‘Как тебя зовут ? ‘); <Вывод на экран текста вопроса>
ReadLn(Name); <Ввод c клавиатуры имени>
WriteLn(‘Привет, ‘, Name, ‘!’); <Вывод на экран приветствия>
ReadLn
END.

Здесь последний оператор ReadLn позволяет видеть на экране результаты

работы программы, пока не будет нажата клавиша <Enter>.

Результаты работы Pascal-программы

Как тебя зовут ? Тимур <Enter>
Привет, Тимур !

QBasic
CLS
INPUT «Как тебя зовут ? «, Name$
PRINT «Привет, «; Name$; «!»
END

Иллюстрированный самоучитель по С++ для начинающих

Приступая к решению задач этого раздела, следует вспомнить, что:

  • каждому символу соответствует число – код символа;
  • в C++ строка – это массив символов;
  • последним символом строки обязательно должен быть нуль-символ, код которого равен 0, и который в тексте программы изображается так: ‘ \ 0 ‘;
  • сообщения или подсказки, используемые в программе, удобно представить как массив указателей на строки и инициализировать массив, задать сообщения в инструкции объявления массива:
  • если вводимая во время работы программы строка содержит пробелы, то функция scanf вводит только часть строки до первого пробела, а функция gers – всю строку, в том числе и соответствующий клавише Enter символ ‘\n’.

Задачи

165. Написать программу, которая запрашивает имя пользователя и здоровается с ним. Рекомендуемый вид экрана во время выполнения программы приведен ниже (данные, введенные пользователем, выделены полужирным шрифтом).

166. Написать программу, которая запрашивает у пользователя имя и отчество, затем здоровается с ним. Для ввода используйте функцию getch().

167. Напишите программу, которая вычисляет длину введенной с клавиатуры строки.

168. Напишите программу, которая выводит на экран сообщение в "телеграфном" стиле: буквы сообщения должны появляться по одной, с некоторой задержкой.

169. Напишите программу, которая выводит код введенного пользователем символа. Программа должна завершать работу в результате ввода, например, точки. Рекомендуемый вид экрана во время выполнения программы приведен ниже (данные, введенные пользователем, выделены полужирным шрифтом).

170. Написать программу, которая выводит на экран первую часть таблицы кодировки символов (символы с кодами от 0 до 127). Таблица должна состоять из восьми колонок и шестнадцати строк. В первой колонке должны быть символы с кодом от 0 до 15, во второй – от 16 до 31 и т. д.

171. Написать программу, которая в введенной с клавиатуры строке преобразует строчные буквы русского алфавита в прописные (учтите, что стандартная функция upcase с символами русского алфавита не работает). Рекомендуемый вид экрана во время выполнения программы приведен ниже (данные, введенные пользователем, выделены полужирным шрифтом).

172. Написать программу, которая удаляет из введенной с клавиатуры строки начальные пробелы.

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

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