С клавиатуры вводится целое число n вычислить и вывести на экран в экспоненциальном виде

Обновлено: 04.05.2024

Для ввода данных в языке Турбо Паскаль предусмотрены стандартные операторы (процедуры) – READ и READLN , которые предназначены для чтения данных, как с клавиатуры, так и из файла. В данном разделе рассматривается ввод данных только с клавиатуры. Добавление к оператору READ символов LN обеспечивает автоматический переход курсора после ввода данных на новую строку.

Формат оператора:

Здесь a1,a2,a3. an – переменные, которым последовательно присваиваются значения. Если в тексте программы встречается оператор READ , компьютер приостанавливает работу и ожидает ввода значений переменных с клавиатуры. Когда все значения переменных, перечисленных в операторе ввода, введены, процесс выполнения программы продолжается.

Допускается использование оператора ввода без параметров

который выполняет переход на новую строку при вводе данных.

При вводе данных с помощью оператора READ нужно иметь в виду следующие основные правила:

  • логические данные в Турбо Паскале вводить не разрешается;
  • при вводе числовых данных, числа разделяются пробелом или символом окончания ввода (клавиша ENTER). Ввод всегда заканчивается нажатием клавиши ввода – ENTER;
  • пробелы перед числом и между числами игнорируются, поэтому их можно ставить в любом количестве;
  • если переменная описана как Integer , ее значение вводится как целое число, т.е. не допускается использование точки после числа;
  • если переменная описана как вещественная ( Real ), а ее значение является целым числом, то можно вводить число как целое (т.е. без точки) и как вещественное число – с точкой. Преобразование целого числа к вещественному числу будет выполнено автоматически;
  • ввод символьных данных имеет особенности. Поскольку пробел является символом, как и любой другой символ языка Турбо Паскаль, то символьные данные необходимо вводить сплошной строкой;
  • одной символьной переменной можно присвоить значение только одного символа;
  • нажатие клавиши ENTER воспринимается как символ, поэтому для правильного ввода символьных данных рекомендуется перед каждым оператором ввода символьных данных ставить оператор перехода на новую строку READLN , чтобы их ввод осуществлялся с новой строки.

ЗАДАЧА. Ввод данных.

Введем в программу следующие исходные данные:

Обозначим символом пробел при вводе. При вводе числа будем разделять пробелом. Между числами допускается любое количество пробелов. Тогда экран монитора при вводе данных может выглядеть следующим образом:

Введите a, b, c: 2 3

Введите x, y, z:44.4 47.5 76

Введите s1,s2,s3:A B C

Вывод данных

Для вывода данных из памяти компьютера на экран монитора предназначен оператор Write .

Здесь a1,a2,a3. an могут быть либо переменными, либо строкой символов, заключенной в апострофы. Все элементы перечисляются через запятую. Добавление к оператору WRITE символов LN обеспечивает автоматический переход курсора после вывода данных на новую строку.

Допускается использование оператора ввода без параметров

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

Параметрами оператора WRITE могут быть данные целого, вещественного, логического, символьного, а также типа string .

Расположение данных на экране монитора может быть задано параметрами оператора WRITE , тогда вывод называется выводом с форматами данных. Если в операторе WRITE форматы не используются, вывод называется бесформатным выводом или стандартной формой вывода.

Бесформатный вывод. Форма представления выводимых данных зависит от типа данных:

  • значения логического типа выводятся в виде логических значений TRUE и FALSE ;
  • значения символьных переменных выводятся в виде соответствующих символов;
  • символьная константа выводится в том виде, как она записана, но без апострофов;
  • значения величин целого типа выводятся как целые числа;
  • значения величин вещественного типа выводятся в формате с плавающей точкой.

При бесформатном выводе отводимое количество позиций равно размеру данных. При выводе символа отводится одна позиция, при выводе целого числа – число позиций равно числу значащих цифр плюс одна позиция под знак, если число отрицательное. Это необходимо учитывать при последовательном выводе данных, например чисел, чтобы значения разных переменных не сливались друг с другом.

ПРИМЕР. Рассмотрим фрагмент программы:

Оператором write(n,m); на экран монитора выводятся целые числа: n=1234 и m=7890 . Поскольку используется вывод без форматов данных, результат будет иметь вид:

Два числа слились. Для того чтобы числа не сливались необходимо использовать разделяющие пробелы или разнесение информации по разным строкам.

Результат:

Результат:

Форматный вывод. Для вывода вещественных чисел необходимо указать в операторе WRITE формат представления числа, который имеет вид:

где: m – целое число, указывающее общее количество позиций отводимое под значение переменной, включая позицию под знак числа, точку и количество цифр дробной части; n – целое число, определяющее количество цифр дробной части.

Выводимая информация выравнивается по левому краю. При этом подавляется печать ведущих нулей, т.е. если для вывода числа было выделено четыре позиции, то на экран монитора будет выведено, например, 6 , а не 0006 .

Пример. Выведем значение переменной A , равное 401.3 оператором write(A:8:2) . На экран монитора будет выведено:

401,30
8 позиций

Символом обозначен пробел.

Вывод вещественных чисел выполняется по следующим правилам:

  1. Если число имеет меньшую длину, чем m , то оно будет дополнено слева пробелами.
  2. Если число имеет большую длину, чем m , то параметр m игнорируется и число будет выведено полностью.
  3. Если дробная часть больше, чем параметр n , то число округляется. Округление не изменяет самого значения переменной, меняется только представление числа на мониторе.
  4. Если параметр n не указан, то ни дробная часть числа, ни десятичная точка не выводятся. Вывод осуществляется в формате с плавающей запятой.

В качестве примера рассмотрим печать вещественного числа в различных форматах.

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

Печать вещественного числа

Печать в фиксированном формате

Печать в плавающем формате

Для вывода целых чисел необходимо указать в операторе WRITE формат представления числа, который имеет вид:

k – целое число, указывающее общее количество позиций, отводимое под значение переменной.

В целых числах отсутствует дробная часть, поэтому нет необходимости указывать в формате число позиций дробной части.

Цикл — это многократно повторяющийся фрагмент программы.

В java существует два типа циклов: типа «пока» и типа «n-раз».

Первый тип «пока» предназначен для повторения какого-то действия до тех пор, пока выполняется некоторое условие. Пример: увеличивать число на 5 до тех пор, пока оно не станет трёхзначным.

Второй тип «n-раз» предназначен для повторения каких-то действий заранее известное количество раз. Пример: умножить число само на себя 4 раза.

Цикл типа «пока» (операторы while и do…while)

Оператор while повторяет указанные действия до тех пор, пока его параметр имеет истинное значение.

Например, такой цикл выполнится 4 раза, а на экран будет выведено «1 2 3 4 »:

Такой цикл не выполнится ни разу и на экран ничего не выведется:

Такой цикл будет выполняться бесконечно, а на экран выведется «1 2 3 4 5 6 7 …»:

Условие, определяющее будет ли цикл повторятся снова, проверяется перед каждым шагом цикла, в том числе перед самым первым. Говорят, что происходит предпроверка условия.

Бывает цикл типа «пока» с постпроверкой условия. Для его записи используется конструкция из операторов do…while.

Такой цикл выполнится 4 раза, а на экран будет выведено «2 3 4 5 »:

Такой цикл выполнится 1 раз, а на экран будет выведено «2 »:

Тело цикла do…while выполняется по крайней мере один раз. Этот оператор удобно использовать, когда некоторое действие в программе нужно выполнить по крайней мере единожды, но при некоторых условиях придётся повторять его многократно.

Ознакомьтесь со следующей программой (она загадывает случайное целое число из отрезка [1;10] и просит пользователя его угадать, вводя варианты с клавиатуры, пока пользователь не угадает число, программа будет ему подсказывать, сообщая больше или меньше число загаданное, чем то, что ввёл пользователь):

Внесите в программу следующие доработки:

Программа должна считать количество попыток, которое потребовалось пользователю, чтобы угадать число. И в конце сообщать, сколько было попыток.

Программа должна загадывать число не из отрезка [1;10], а целое число из отрезка от [−10;10], исключая ноль. При этом, постарайтесь, чтобы распределение случайных чисел генерируемых программой было равномерных (т. е. в случае выпадения нуля его нельзя просто заменить на какое-то другое число, например, на 1, ведь тогда 1 будет выпадать с вдвое большей вероятностью, чем остальные числа).

Программа должна подсказывать пользователю, что он ошибся в знаке, если программа загадала положительное число, а пользователь ввёл отрицательное. И наоборот.

Цикл типа «n-раз» (оператор for)

Оператор for содержит три параметра. Первый называется инициализацией, второй — условием повторения, третий — итерацией.

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

Во втором параметре указывают некоторое ограничение на счётчик (указывают, до какого значения он будет изменяться).

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

Перед первым шагом цикла счётчику присваивается начальное значение (выполняется инициализация). Это происходит лишь однажды.

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

После завершения каждого шага цикла и перед началом следующего (и, значит, перед проверкой условия повторения) выполняется итерация.

Представленная программа выводит на экран числа от 1 до 100:

Представленная программа выводит на экран числа от 10 до −10:

Представленная программа выводит на экран нечётные числа от 1 до 33:

Представленная программа вычислит сумму элемнтов фрагмента последовательности 2, 4, 6, 8,… 98, 100. Итак:

Представленная программа будет возводить число из переменной a в натуральную степень из переменной n:

Представленная программа выведет на экран 10 первых элементов последовательности 2n+2, где n=1, 2, 3…:

Представленная программа выведет на экран 10 первых элементов последовательности 2an−1+3, где a1=3:

В одном цикле можно задавать сразу несколько счётчиков. При этом несколько выражений в итерации и в инициализации разделяются запятыми. Условие повторения можно задавать только одно, но оно может быть выражением, содержащим сразу несколько счётчиков.

Представленная программа выведет на экран 10 первых элементов последовательности 2an−1–2, где a1=3:

Представленная программа выведет на экран такую последовательность «0 -1 -4 -9 -16 -25»:

Досрочное завершение цикла (оператор break)

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

В результате работы следующего примера на экран будут выведены только числа «1 2 3 4 Конец»:

Когда программа будет выполнять цикл в пятый раз(войдёт в цикл с счётчиком равным 5), сразу же будет проверено и окажется истинным условие при котором выполнится оператор break. Оставшаяся часть тела цикла (вывод на экран) уже производится не будет: программа сразу перейдёт к выполнению операций указанных после цикла и далее.

C помощью оператор break можно прервать заведомо бесконечный цикл. Пример (на экран выведется «100 50 25 12 6 3 1 0 » и после этого цикл остановится):

Оператор break имеет смысл вызывать только при наступлении какого-то условия, иначе цикл будет завершен досрочно на первом же своём шаге.

обучение PascalABC

Линейным называется алгоритм, в котором команды выполняются последовательно друг за другом. Это самая простая конструкция. Программирование линейных алгоритмов освоить очень легко. Для написания простых программ на паскале разберем основные правила записи кода, основные команды и операторы Паскаль.

Структура программы на языке Паскаль

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

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

Заголовок программы

Текст программы начинается со слова program. После него записывается имя программы. Данная строка носит информативный характер и ее можно не писать.

Раздел подключения модулей начинается со служебного слова uses, за которым следует список имен модулей, перечисляемых через запятую.

Раздел описаний может включать разделы описания переменных, констант, меток, типов, процедур и функций, которые следуют друг за другом в произвольном порядке. Раздел подключения модулей и раздел описаний меток, констант и др. могут отсутствовать.

Раздел описания переменных

Раздел программы, обозначенный служебным словом var, содержит описание переменных с указанием их типов. Они используются для хранения исходных данных, результатов вычисления и промежуточных результатов.

Комментарии в программе можно записывать внутри фигурных скобок. Они игнорируются во время выполнения программы. Эти пояснения вы пишите только для себя.

В нашем примере переменные с именами X и Y используются для хранения исходных данных. Переменная с именем Z используется для хранения результата вычислений.

Имя переменной может записываться большими или маленькими латинскими буквами. Имя может содержать цифры, знак подчеркивания и не должно начинаться с цифры. Прописные и строчные символы считаются одинаковыми. В качестве имени нельзя использовать служебное слово языка Pascal.

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

Принадлежность переменной к типу integer означает, что она может хранить только целые числа. Если требуется хранить действительные (дробные) числа, тогда используется тип real.

Тело программы

Оператор присваивания значений переменным имеет следующую структуру: переменная := выражение

Значок : = (двоеточие, равно) читается как «присвоить».
Умножение обозначается символом * (звездочка), деление — символом / (слеш).

Вывод результата выполняет команда write или print.

линейные алгоритмы паскаль примеры

Команды в Паскаль для ввода и вывода данных

Команда Read

В первом примере мы присвоили значения переменным непосредственно в тексте программы. Но так как программа пишется для решения множества однотипных задач, то удобнее задавать значения переменным во время ее работы. Для этого применяется команда read, которая позволяет ввести текстовые или числовые данные с клавиатуры.

Модифицируем код программы из примера выше.

Теперь ввод значений переменных Х и У будет осуществляться по запросу работающей программы. В этот момент нужно будет с клавиатуры ввести два числа через пробел и нажать клавишу Enter, чтобы продолжить выполнение программы.

линейные алгоритмы паскаль

При работающей программе в системе программирования PascalABC появится строка ввода данных. Там и пишутся значения переменных.

Команда Write

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

Теперь посмотрите, как добавленные строки повлияли на работу программы.

линейные алгоритмы паскаль задачи с решением


У нас появились подсказки. Посмотрите на команду write. В качестве ее аргумента был использован текст, заключенный в апострофы. И еще, появилось окончание ln у оператора write. Именно оно заставляет последующий вывод информации делать с новой строки. Это же окончание можно использовать совместно с оператором read.

линейные алгоритмы на паскаль

Также поменялся вывод результата. Здесь тоже появилась подсказка.

Задание 1. Модифицировать программу так, чтобы она вычисляла и выводила на экран сумму и произведение трех целых чисел.

Пример 1. Напечатать таблицу кубов целых чисел от 1 до N <=20. Число N ввести с клавиатуры.

printf(“Введите целое N <=20 “);

Пример 2. Вычислить значение y=sin(x) для x от 0 до 1, Dх=0.1. Печать результата производить для каждой второй точки (одну печатать, другую пропускать).

while (x<=1.000001) // Если бы значение x сравнивалось с 1,

// то из-за ошибок округления

// при суммировании по формуле x=x+0.1

// условие x<=1. не было бы

// выполнено для x=1.

Пример 3. Вычислить сумму N членов ряда ai = 1/i2, 1<= i <=N. Число N ввести с клавиатуры. Если в процессе вычислений очередной член ряда окажется меньше 10-3, то дальнейшие вычисления прекратить. Распечатать вычисленную сумму и количество просуммированных членов ряда.

1) Неверный вариант программы

printf(“Введите целое N “);

printf(“s=%f, кол-во членов ряда =%d\n”,s,i);

В этом варианте программы две принципиальные ошибки. Первая касается работы цикла for. Переменной i присваивается очередное значение, и если условие продолжения цикла не выполняется, происходит выход из цикла. Затем последнее значение переменной i выводится на экран, но оно оказывается на 1 больше количества членов ряда. Вторая ошибка более тонкая. Переменная s описана как float, но инициализируется целым числом 0. Это не так страшно, хотя хороший стиль программирования исключает неявное приведение числовых значений к типу переменной. Но эта же ошибка при вычислении выражения 1/(i*i) приводит к фатальным последствиям, так как компилятор воспринимает это выражение как целое, и следовательно уже для второго члена ряда оно будет равным нулю. И хотя результат (0) будет приведен к типу float для сравнения с величиной eps, но положения это уже не спасет, и произойдет выход из цикла.

2) Верный вариант программы

printf(“Введите целое N “);

if ( t < eps) break;

printf(“s=%f, кол-во членов ряда =%d\n”,s,i-1);

В выражении 1.0/ (i*i) вещественная константа 1.0 делится на целое. По правилам согласования типа данных целое i*i будет приведено к типу float, и результат деления будет правильным.

3) Другой способ записи этой программы

printf(“Введите целое N “);

for (i=1, s=0, t=1; i<=N; i++, t=1.0/(i*i) ) // Часть вычислений тела цикла for можно

// выполнять внутри скобок for

if ( t < eps) break;

printf(“s=%f, кол-во членов ряда =%d\n”,s,i-1);

1. С помощью трех операторов цикла вычислить y=x/2, -3<=x<=0, Dx=0.3. Вывести все значения x и y

- в виде вертикальной таблицы;

- в виде горизонтальной таблицы.

2. С помощью трех операторов цикла вычислить

y = x*x если 0.3<=x*x<0.7

3. Вычислить сумму 50 членов ряда ai = 1/i, i =1, 2, …. Если в процессе вычислений очередной член ряда окажется меньше epsilon, то дальнейшие вычисления прекратить. Число epsilon ввести с клавиатуры. Распечатать вычисленную сумму и количество просуммированных членов ряда.

Домашнее задание занятия 1.

2. Найти абсолютную величину введенного числа. Число ввести в виде строки символов. Использовать условную операцию.

3. Ввести имя, величину суммы, положенной в банк и срок, на который деньги кладутся в банк. Вывести на экран все вводимые данные, рассчитать сумму, которую получит клиент банка при условии, что будет класть деньги на разные сроки. Учесть годовой процент инфляции – 10% и годовую процентную ставку банка, которая зависит от срока, на который положены деньги (на 1 год –4%, на 2 года – 5%, на большее число лет – 6%).

4. С помощью условной операции для заданных значений x и y вычислить

5. Перераспределите значения переменных x и y таким образом, чтобы переменная x получила меньшее из этих значений, а y - большее.

6. Заданы три числа a,b,c. Определить могут ли они быть сторонами треугольника, и если да, то определить его тип: равносторонний, равнобедренный, разносторонний.




7. Как известно, число делится на три тогда и только тогда, когда сумма его цифр делится на три. Проверьте этот признак на примере заданного трехзначного числа.

8. Определите, равна ли сумма крайних цифр четырехзначного числа сумме его средних цифр.

9. Расположить в порядке возрастания значения, полученные в результате вычисления следующих выражений: ln|abc| , ln|a+b+c|, a-b.

10. Определить, попадает ли точка с координатами (x,y) в внутрь круга радиуса r и центром в начале координат.

11. Пройдет ли кирпич со сторонами a,b,c, сквозь прямоугольное отверстие со сторонами r и s? Стороны отверстия должны быть параллельны граням кирпича.

12. Можно ли коробку размером a*b*c упаковать в посылку размером r*s*l? Углом укладывать нельзя.

13. Можно ли из круглой заготовки радиусом r вырезать две прямоугольные пластинки разме- ром a*b и c*d?

14. Два отрезка на плоскости заданы координатами своих концов. Определить, имеют ли отрезки общие точки - на одной горизонтали.

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

18. Составьте программу, определяющую лежит ли точка с заданными координатами X,Y на окружности радиуса R с центром в начале координат.

19. Составьте программу, определяющую, пройдет ли график функции y=5*x2-7*x+2 через заданную точку с координатами a,b.

20. Составьте программу, проверяющую, верно ли утверждение, что введенное вами число является нечетным.

21. Составьте программу, проверяющую, верно ли утверждение, сто введенное вами число делится без остатка на 3.

22. Рис расфасован в два пакета. Вес первого – m кг, вес второго – n кг. Определяющую:

какой пакет тяжелей – первый или второй;

определите вес более тяжелого пакета.

- фигурные скобки, если введено < или >;

- круглые скобки, если введено ( или );

- квадратные скобки, если введено [ или ];

- это не скобки, во всех остальных случаях.

24. С помощью трех операторов цикла вычислить

sin(3*x-4.1), если x*x<0.3

25. Написать программу, которая вычисляет сумму всех чисел от 1 до N. Значение N вводится с клавиатуры.

26. Составить программу, которая вычисляет сумму квадратов всех нечетных чисел от 1 до N. Значение N вводится с клавиатуры.

27. Составить программу, которая вычисляет произведение всех четных чисел от 1 до N. Значе- ние N вводится с клавиатуры.

28. Ввести с клавиатуры целое число N. Вывести все делители этого числа

- в порядке возрастания;

- в порядке убывания.

29. Составить программу, которая выводит все простые числа из диапазона от 1 до N. Значение N вводится с клавиатуры.

30. Вычислить значение y=cos(x) для х от 0 до 2, Dх=0.1. Печать результата производить для каждой третьей точки (одну печатать, две пропускать).

31. Вычислить и напечатать значение y=cos(x) для х от 0, Dх=0.05. Вычисления прекратить при y >= z (z ввести с клавиатуры, -1<z<1). Напечатать количество вычисленных значений.

32. Вычислить сумму нечетных членов ряда ai = 1/i2, 1<= i <=N . Число N ввести с клавиатуры. Распечатать вычисленную сумму и количество просуммированных членов ряда.

Читайте также: