Remkomplekty.ru

IT Новости из мира ПК
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Совершенные числа паскаль

Решение задач. День двенадцатый. Задачи While1-14

Приветствуем читателей learnpascal.ru! Продолжаем наш марафон по решению задач. На очереди задачи while1-14.

Чтобы решить все нижеприведенные задачи, вам надо знать материал трех уроков: div, mod, функции; логические выражения; циклы.

While1°. Даны положительные числа A и B (A > B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Не используя операции умножения и деления, найти длину незанятой части отрезка A.

Умножение — это некоторое количество сложений.

While2. Даны положительные числа A и B (A > B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Не используя операции умножения и деления, найти количество отрезков B, размещенных на отрезке A.

Добавляем счетчик в предыдущую задачу.

While3. Даны целые положительные числа N и K. Используя только операции сложения и вычитания, найти частное от деления нацело N на K, а также остаток от этого деления.

While4°. Дано целое число N (> 0). Если оно является степенью числа 3, то вывести True, если не является — вывести False.

Число будет степенью числа, если деля заданное число нацело на 3, получится N = 1.

While5. Дано целое число N (> 0), являющееся некоторой степенью числа 2: N = 2 K . Найти целое число K — показатель этой степени.

Используем метод из предыдущей задачи.

While6. Дано целое число N (> 0). Найти двойной факториал N: N! = N·(N–2)·(N–4)·… (последний сомножитель равен 2, если N — четное, и 1, если N — нечетное). Чтобы избежать целочисленного переполнения, вычислять это произведение с помощью вещественной переменной и вывести его как вещественное число.

While7°. Дано целое число N (> 0). Найти наименьшее целое положительное число K, квадрат которого превосходит N: K 2 > N. Функцию извлечения квадратного корня не использовать.

While8. Дано целое число N (> 0). Найти наибольшее целое число K, квадрат которого не превосходит N: K 2 ≤ N. Функцию извлечения квадратного корня не использовать.

While9. Дано целое число N (> 1). Найти наименьшее целое число K, при котором выполняется неравенство 3K > N.

Аналагично while 7.

While10. Дано целое число N (> 1). Найти наибольшее целое число K, при котором выполняется неравенство 3K 1). Вывести наименьшее из целых чисел K, для которых сумма 1 + 2 + … + K будет больше или равна N, и саму эту сумму.

Действуем аналогично предыдущим задачам.

While12°. Дано целое число N (> 1). Вывести наибольшее из целых чисел K, для которых сумма 1 + 2 + … + K будет меньше или равна N, и саму эту сумму.

While13. Дано число A (> 1). Вывести наименьшее из целых чисел K, для которых сумма 1 + 1/2 + … + 1/K будет больше A, и саму эту сумму.

Такая же как while11.

While14. Дано число A (> 1). Вывести наибольшее из целых чисел K, для которых сумма 1 + 1/2 + … + 1/K будет меньше A, и саму эту сумму.

Такая же как while12.

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

Совершенные числа паскаль

Функция Int вычисляет целую часть значения с плавающей точкой. Синтаксис:

function Int(X: ValReal) : ValReal;

Функция возвращает целую часть вещественного числа Х. Тип данных возвращаемого значения является также вещественным числом.

О типе ValReal я рассказывал здесь.

Функция Frac возвращает дробную часть числа с плавающей точкой. Синтаксис:

function Frac(X: ValReal) : ValReal;

Целая часть числа

Как известно, вещественное число имеет целую часть и дробную часть. Например, число 3,14 можно произнести словами как “три целых, четырнадцать сотых”.

Соответственно, целая часть числа 3,14 – это число 3.

И, как вы теперь уже знаете, получить целую часть числа в Паскале можно с помощью функции Int:

Дробная часть числа

Если рассмотреть всё то же число 3,14, то его дробной частью будет число 0,14. То есть вещественное число состоит из двух частей, сумма которых и является вещественным числом:

Читать еще:  На каком языке написан паскаль

Получить дробную часть числа в Паскале можно с помощью функции Frac:

Пример программы, которая использует функции Int и Frac, приведён ниже:

Программирование. Стандартные функции Pascal-Паскаль

  • Скачено бесплатно: 6955
  • Куплено: 414
  • Pascal-Паскаль->Программирование. Стандартные функции Pascal-Паскаль

Стандартные функции Pascal-Паскаль

Порядок вычислений в выражениях следующий:

  1. вычисляются подвыражения, заключенные в скобки;
  2. затем выполняются операции с наибольшим приоритетом; обычно используются следующие уровни приоритетов (в порядке убывания):
  3. возведение в степень;
  4. мультипликативные операции: * , / , div , mod;
  5. унарные операции: + , – , abs , not;
  6. аддитивные операции: +, -;
  7. операции отношения: = , <>, , =;
  8. логические операции: and, or, not;
  9. операции с одинаковым приоритетом выполняются слева направо.

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

  • в Паскале нет стандартной операции или стандартной функции возведения в степень, поэтому используется следующее математическое тождество: x y = e ylnx
  • в Паскале существует только стандартная функция вычисления натурального логарифма, поэтому используется следующее математическое тождество: logab= ln b/ln a

Математическое выражение: x 3/2 – 7x + tg (x+2)

Выражение на Паскале: exp(3*ln(x)/2)-7*x+sin(x+2)/cos(x+2)

Операторы действия

Операторы действия – это средства языка, позволяющие изменять в процессе выполнения программы состояние вычислений. Самый простой оператор действия – оператор присваивания.

Пример оператора присваивания

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

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

  1. В каждый момент времени в ящике может храниться не более одного значения.
  2. Каждый ящик способен хранить только значения одного и того же типа. Попытка поместить в ящик значение любого другого типа приводит к тому, что ящик отказывается принимать на хранение передаваемое ему значение – это расценивается как ошибка в программе.
  3. Значение, помещенное в ящик, будет храниться в нем до тех пор, пока в этот ящик не будет помещено новое значение (в момент присваивания соответствующей переменной этого нового значения) – при этом предыдущее содержимое ящика безвозвратно теряется (уничтожается).
  4. Находящееся в ящике значение считается текущим значением соответствующей переменной. Это текущее значение может быть выдано из ящика для использования сколько угодно раз, но при этом содержимое ящика не меняется: из него каждый раз выдается копия хранящегося значения с сохранением оригинала в ящике без какого-либо изменения.
  5. К началу выполнения программы содержимое всех запоминающих ящиков считается неопределенным; в частности, их нельзя считать и пустыми, поскольку эти ящики могли использоваться при выполнении предыдущих программ, после чего в ящиках могло что-то остаться.

Еще один оператор действия, хотя его можно лишь условно назвать таковым: он не выполняет никакого действия, это – пустой оператор (в Паскале он обознается знаком «;»). В Паскале оператором действия является также оператор процедуры. Последний из простейших операторов действия – оператор останова, который прерывает работу программы (в Паскале это оператор halt).

Ввод и вывод данных

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

Пример ввода данных с клавиатуры

read(a,b,c);

readln(a,b,c);

Вывод данных на экран производится с помощью стандартной процедуры write( ) или ее разновидности writeln( ).

Список вывода может содержать константы, переменные, выражения, формат вывода. Выражения в списке вывода разделяются запятыми.

Пример вывода данных на экран

write(a,b,c);

writeln(a,b,c);

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

Программирование

Исходники Pascal (127)

Справочник

Справочник по паскалю: директивы, функции, процедуры, операторы и модули по алфавиту

Арифметические операции

Начнем , пожалуй , с самого простого – арифметические операции с числами в паскале. В паскаль встроены многие привычные нам арифметические операции ( Сложение , вычитание , умножение , деление и т.п ).

Читать еще:  Сортировка выбором паскаль

Как же осуществляются подобные операции с числами ?. Давайте разберем это на примере исходника одной программы.

200?’200px’:”+(this.scrollHeight+5)+’px’);»> program mypascal;
var
a,b:integer;
c:real;
begin

a:= a – b; // a-b = 7 – 4 = 3 , следовательно a = 3 , b = 4 , c = 0
b:= a + b; // a+b = 3 + 4 = 7 , a = 3 , b = 7 , c = 0

a:= b * 2; // b*2 = 7 * 2 = 14 , a = 14 , b = 7 , c = 0
c:= a / b; // a/b = 14 / 7 = 2 , a = 14 , b = 7 , c = 2

Результатом выполнения данной программы будет вывод на экран трех чисел 14 7 2. Разберемся в том , как это работает.

В начале программы мы объявляем 2 целочисленные ( integer ) переменные «a» и «b» , а также 1 переменную «c» вещественного ( real ) типа.

Зачем нам нужна вещественная переменная ? Для записи результата деления целочисленная переменная не подходит , так как у нас получается дробь , а не целое число.

Теперь мы присваиваем переменной «a» значение 7 , а переменной «b» значение 3
. Переменную «c» при этом оставляем нулевой ( она нам пока не понадобится ).

Далее (в блоке begin end) мы расписываем арифметические операции с нашими числами. Обратите внимание на то , что после символов // идет комментарий , который не компилируется программой.

Запомните : Строка a:= a – b; выглядит так a:= 7 – 4; , а не так 7:= 7 – 4;

Другие операции с числами

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

1. Как найти квадрат числа в паскале ?

Для нахождения квадрата числа в паскале предусмотрена функция sqr(x) , где x – число.
Пример :

Результат : переменной «а» присваивается значение 25.

2. Как найти корень числа в паскале ?

Для нахождения корня числа в паскале предусмотрена функция sqrt(x) , где x – число.
Пример :

Результат : переменной «а» присваивается значение 5.

3. Как округлить число в паскале ?

Для того , чтобы округлить некоторое число используется операция round(x).
Пример :

Результат : переменной «а» присваивается значение 9.

4. Как убрать дробную часть у числа в паскале ?

Для того , чтобы отбросить дробную часть числа используется операция trunc(x).
Пример :

Результат : переменной «а» присваивается значение 25.

5. Как убрать целую часть у числа в паскале ?

Для того , чтобы отбросить целую часть числа используется операция frac(x).
Пример :

Результат : переменной «а» присваивается значение 0.2.

6. Как получить модуль числа в паскале ?

Чтобы получить модуль некоторого числа используется операция abs(x).
Пример :

Результат : переменной «а» присваивается значение 8.

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

Выводы :

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

Pascal ABC_Урок 5_Работа с числовыми данными. Совмещение целых и вещественных чисел

Как организовать дистанционное обучение во время карантина?

Помогает проект «Инфоурок»

Описание презентации по отдельным слайдам:

ПАСКАЛЬ Pascal ABC

ПАСКАЛЬ Pascal ABC Работа с числовыми данными. Урок 9-10 Совмещение целых и вещественных чисел

ПРАВИЛА ПРИОРИТЕТА ВЫПОЛНЯЕМЫХ ДЕЙСТВИЙ: Скобки Все функции Умножение и деление (* и /) Сложение и вычитание (+ и -) Операции одинакового приоритета выполняются слева направо

ТИП РЕЗУЛЬТАТА Операция / функция Тип данных 1 аргумента Тип данных 2 аргумента Тип данных результата + -* INTEGER INTEGER INTEGER INTEGER REAL REAL REAL INTEGER REAL REAL REAL REAL / Не важен REAL Div, Mod ТолькоINTEGER INTEGER Abs,Sqr INTEGER — INTEGER REAL — REAL Sqrt,Sin, Cos,Arctan, Exp, Pi Не важен — REAL Trunc, Round Не важен — INTEGER

Порядок вычисления выражения: Abs (12 mod 7 * 4 / 2 – 350 div 15) + 2 12 mod 7 (12 mod 7) * 4 (12 mod 7 * 4) / 2 350 div 15 (12 mod 7 * 4 / 2) – (350 div 15) Abs (12 mod 7 * 4 / 2 – 350 div 15) Abs (12 mod 7 * 4 / 2 – 350 div 15) + 2

Читать еще:  Перевод на паскаль онлайн

Тип результата каждого действия: Abs (12 mod 7 * 4 / 2 – 350 div 15) + 2 № Операция Результат и его тип 1 12 mod 7= 5 Остаток от деления 12 на 7 = 5,INTEGER 2 5 * 4= 20 20,INTEGER 3 20 / 2= 10.0 10.0,REAL 4 350div 15= 23 23,INTEGER 5 10.0 – 23= -13.0 — 13.0,REAL 6 Abs (- 13.0) = 13.0 13.0,REAL 7 13.0 + 2= 15.0 15.0,REAL

Основные операторы системы: Имя программы program Начало и Конец BeginиEnd. Переменные VAR Целое число integer Вещественное число real Вывод наэкран Write(‘x= ‘, x) Вывод на экран с новой строки Writeln(‘x= ‘, x) Модуль числа Abs (х) Возведение в квадрат Sqr(х) Квадратный корень числа Sqrt(x) Синус числа Sin (x) Косинус числа Cos (x) Арктангенс числа Arctan(x) Логарифм числа Ln(x) Возведение числаЕв степеньХ Exp (x) Вычисление числаПи Pi Отбрасывает дробную часть числа Trunc(x) Округлениедробного числа до ближайшего целого Round (x)

ЗАДАНИЕ: Z27) Набрать задачу Z27 (образец в тетради) Z28) Дано действительное число Х. Напишите программу для вычисления: Числа Х, округлённого до ближайшего целого Числа Х без дробных цифр Z29 – Z41: Написать программы, в которых разложить все действия по порядку Z29) Вычислите по действиям значение выражения: 2 – 13 mod 7 / 3 + sqr (4). Результат округлите до ближайшего целого Z30) Вычислите по действиям значение выражения: sqr (9) – 14 div 3 * 2 + sqrt (4). Результат запишите без дробных цифр Задания z31 – z41 подобные z29 – z30

Z42 – Z54) Запишите на языке Паскаль: Z42 Z43

Литература: М. Э. Абрамян. Programming Taskbook. Электронный задачник по программированию. Версия 4.6./ Ростов-на-Дону — 2007 г. 2. Ушаков Д.М., Юркова Т.А. Паскаль для школьников. СПб.: Питер, 2010. — 256 с.

Выберите книгу со скидкой:

ЕГЭ. География. Новый полный справочник для подготовки к ЕГЭ

350 руб. 163.00 руб.

350 руб. 171.00 руб.

ЕГЭ-2019. География. Теория и практика

350 руб. 213.00 руб.

ОГЭ. География. Большой сборник тематических заданий для подготовки к основному государственному экзамену

350 руб. 197.00 руб.

География. 10-11 классы. Атлас. (Традиционный комплект) (РГО)

350 руб. 106.00 руб.

География. 7 класс. Атлас. (Традиционный комплект)(РГО)

350 руб. 106.00 руб.

География. 5 класс. Атлас. (Традиционный комплект).

350 руб. 106.00 руб.

География. 10-11 классы. Контурные карты. (Традиционный комплект) (РГО)

350 руб. 59.00 руб.

География. 6 класс. Атлас. (Традиционный комплект)(РГО)

350 руб. 106.00 руб.

География. Материки, океаны, народы и страны. 7класс. Атлас

350 руб. 184.00 руб.

География. 9 класс. Контурные карты. (Традиционный комплект) (РГО)

350 руб. 59.00 руб.

География. Начальный курс географии. 6класс. Контурные карты

350 руб. 101.00 руб.

БОЛЕЕ 58 000 КНИГ И ШИРОКИЙ ВЫБОР КАНЦТОВАРОВ! ИНФОЛАВКА

Инфолавка — книжный магазин для педагогов и родителей от проекта «Инфоурок»

Бесплатный
Дистанционный конкурс «Стоп коронавирус»

  • Сторчак Евгений Евгеньевич
  • Написать
  • 487
  • 27.04.2018

Номер материала: ДБ-1519646

Добавляйте авторские материалы и получите призы от Инфоурок

Еженедельный призовой фонд 100 000 Р

  • 27.04.2018
  • 188
  • 27.04.2018
  • 669
  • 27.04.2018
  • 258
  • 27.04.2018
  • 335
  • 27.04.2018
  • 137
  • 27.04.2018
  • 423
  • 27.04.2018
  • 281
  • 27.04.2018
  • 124

Не нашли то что искали?

Вам будут интересны эти курсы:

Все материалы, размещенные на сайте, созданы авторами сайта либо размещены пользователями сайта и представлены на сайте исключительно для ознакомления. Авторские права на материалы принадлежат их законным авторам. Частичное или полное копирование материалов сайта без письменного разрешения администрации сайта запрещено! Мнение редакции может не совпадать с точкой зрения авторов.

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

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector
×
×