|
1 / 1 / 0 Регистрация: 21.11.2011 Сообщений: 121 |
|
|
1 |
|
Найти все целые числа30.11.2011, 09:33. Показов 394. Ответов 1
Найти все целые числа из промежутка от 200 до 500, у которых ровно шесть делителей равно k
0 |
|
Demsol 43 / 43 / 14 Регистрация: 16.11.2011 Сообщений: 125 |
||||
|
30.11.2011, 12:10 |
2 |
|||
a — булев массив N-переменная целочисленного типа, isis- булева переменная
2 |
|
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
30.11.2011, 12:10 |
|
Помогаю со студенческими работами здесь Найти все целые числа из промежутка Найти все целые числа, кратные 3, на интервале от k до n Найти все целые числа, сумма которых равна k. Найти все целые числа, сумма цифр которых равна 5.
Найти все целые числа из промежутка от 50 до 150 в десятичной записи, которых есть цифра 9 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 2 |
program CIKL; {заголовок программы}
var n,a,b,k:integer; {все переменные целого типа}
begin {начало программы}
repeat {цикл для проверки ввода}
write('Введите a: ');
readln(a); {ввод числа а}
write('Введите b: ');
readln(b); {ввод числа b}
until a<b; {выход из цикла будет только тогда, когда а<b}
k:=0; {обнуление количества элементов, иначе выйдет ерунда в конечном итоге}
for n:=b-1 downto a+1 do {вывод целых чисел расположенных между а и b циклом со счетчиком}
begin
write(n,' '); {выводим очередное целое число на экран}
inc(k); {аналогично k:=k+1, т.е. прибавляем к количеству единичку с каждый проходом цикла, т.е. с каждым новым целым числом}
end;
writeln; {вывод пустой строки на экране для удобства}
writeln('Количество элементов -> ',k); {собственно вывод искомого количества элементов}
readln; {задержка до нажатия клавиши}
end.{собственно конец}
Приветствуем читателей нашего сайта! Сегодня мы с вами решим for1-15 из вот этого задачника.
For1. Даны целые числа K и N (N > 0). Вывести N раз число K.
Организовываем простой цикл от 1 до требуемого числа.
program for1;
var
K, N, i: integer;
begin
read(K, N);
for i := 1 to N do write(K, ' '); {Пишем К через пробел }
end.
For2. Даны два целых числа A и B (A < B). Вывести в порядке возрастания все целые числа, расположенные между A и B (включая сами числа A и B), а также количество N этих чисел.
Так как A < B, то цикл должен будет выводить все числа от А до B. Чтобы сосчитать количество чисел, используем формулу: <конечное_значение> — <начальное_значение> + 1.
program for2;
var
A, B, i, count: integer;
begin
read(A, B);
for i := A to B do write(i, ' '); {выписываем числа от меньшего к большему}
count := B - A + 1; {считаем количество чисел}
writeln;
write( 'Количество чисел - ', count);
end.
For3. Даны два целых числа A и B (A < B). Вывести в порядке убывания все целые числа, расположенные между A и B (не включая числа A и B), а также количество N этих чисел.
Задача решается аналогично предыдущей. Только на этот раз используем downto, так как числа будут двигаться сверху вниз. Чтобы исключить А и В из списка выводимых чисел, от В отнимаем 1, а к А наоборот прибавляем.
program for3;
var
A, B, i, count: integer;
begin
read(A, B);
for i := B - 1 downto A + 1 do write(i, ' '); {выписываем числа от большего к меньшему}
count := (B - 1) - (A + 1) + 1; {считаем количество чисел}
writeln;
write( 'Количество чисел - ', count);
end.
For4. Дано вещественное число — цена 1 кг конфет. Вывести стоимость 1, 2, …, 10 кг конфет.
Каждую итерацию цикла выводим цену, умноженную на i.
program for4; var i: integer; price_one: real; begin read(price_one); for i := 1 to 10 do writeln(i, ' кг. стоит - ', price_one * i, ' '); end.
For5°. Дано вещественное число — цена 1 кг конфет. Вывести стоимость 0.1, 0.2, …, 1 кг конфет.
Такая же программа, как предыдущая, только теперь умножаем на i / 10.
program for5; var i: integer; price_one: real; begin read(price_one); for i := 1 to 10 do writeln(i / 10, ' кг. стоит - ', price_one * (i / 10), ' '); end.
For6.Дано вещественное число — цена 1 кг конфет. Вывести стоимость 1.2, 1.4, …, 2 кг конфет.
program for6; var i: integer; price_one: real; begin read(price_one); for i := 1 to 5 do writeln(1 + i / 5, ' кг. стоит - ', price_one + price_one * (i / 5), ' '); end.
For7. Даны два целых числа A и B (A < B). Найти сумму всех целых чисел от A до B включительно.
Организовываем цикл и складываем все числа.
program for7; var A, B, i, S: integer; begin read(A, B); S := 0; for i := A to B do S := S + i; write( 'Сумма - ', S); end.
For8. Даны два целых числа A и B (A < B). Найти произведение всех целых чисел от A до B включительно.
Создаем цикл и умножаем все числа.
program for8; var A, B, i, P: integer; begin read(A, B); P := 1; for i := A to B do P := P * i; write( 'Произведение - ', P); end.
For9. Даны два целых числа A и B (A < B). Найти сумму квадратов всех целых чисел от A до B включительно.
Организовываем такой же цикл, как и в предыдущей задаче, но одновременно суммируем квадраты всех чисел. Чтобы высчитать квадрат, используем функцию Sqr.
program for9;
var
A, B, i, S: integer;
begin
read(A, B);
S := 0; {PascalABC делает это автоматически, но если у вас другой компилятор советуем обнулять переменные вручную}
for i := A to B do S := S + Sqr(i); {складываем все квадраты}
writeln;
write( 'Сумма квадратов - ', S);
end.
For10. Дано целое число N (> 0). Найти сумму 1 + 1/2 + 1/3 + … + 1/N (вещественное число).
program for10; var N, i: integer; S : real; begin read(N); S := 0; for i := 1 to N do S := S + 1 / i; write( 'Сумма - ', S:1:2); end.
For11.Дано целое число N (> 0). Найти сумму N2 + (N + 1)2 + (N + 2)2 + … + (2·N)2 (целое число).
program for11; var N, i: integer; S : integer; begin read(N); S := 0; for i := N to 2 * N do S := S + Sqr(i); write( 'Сумма - ', S); end.
For12°.Дано целое число N (> 0). Найти произведение 1.1 · 1.2 · 1.3 · …(N сомножителей).
program for12; var N, i: integer; P: real; begin read(N); P := 1; for i := 1 to N do P := P * (1 + i / 10 ); write( 'Произведение - ', P:1:2); end.
For13°. Дано целое число N (> 0). Найти значение выражения 1.1 – 1.2 + 1.3 – … (N слагаемых, знаки чередуются). Условный оператор не использовать.
Для того, чтобы поменять знак, каждую итерацию цикла меняем значение специальной переменной на противоположное.
program for13;
var
N, A, i: integer;
S: real;
begin
Write('N = ');
readln(N);
S := 1.1;
A := 1; {Сначала положительное}
for i := 2 to N do {первую итерацию цикла мы уже произвели, поэтому начинаем отсчет с 2}
begin
A := -A; {Теперь отрицательное}
S := S + A * (1 + i / 10); {Складываем}
end;
Writeln(S:5:1); {Отдадим под дробную часть одно знакоместо}
end.
For14. Дано целое число N (> 0). Найти квадрат данного числа, используя для его вычисления следующую формулу:
N2 = 1 + 3 + 5 + … + (2·N – 1).
После добавления к сумме каждого слагаемого выводить текущее значение суммы (в результате будут выведены квадраты всех целых чисел от 1 до N).
program for14;
var
i, N: integer;
Pow: real;
begin
write('N = ');
read(N);
Pow := 0;
for i := 1 to N do
begin
Pow := Pow + (2 * i - 1);
writeln(Pow);
end;
end.
For15°. Дано вещественное число A и целое число N (> 0). Найти A в степени N: AN = A·A· … ·A (числа A перемножаются N раз).
program for15;
var
i, N: integer;
A, Pow: real;
begin
write('A = ');
read(A);
write('N = ');
read(N);
Pow := 1;
for i := 1 to N do Pow := Pow * A;
write(Pow:1:2);
end.
На сегодня все! Не забывайте кликать по кнопочкам и подписываться на обновления нашего сайта!
Как проверить целое ли число в паскале
Здесь легко и интересно общаться. Присоединяйся!
функция frac() берет от вещественного числа дробную часть .
var z,x:real;
begin
writeln(‘Vvedite X:’);
readln(x);
z:=frac(x);
if z=0 then
writeln(‘Целое’)
else
writeln(‘Не Целое’);
end.
Pascal (Паскаль). Типы данных. Целые и вещественные числа.
Pascal (Паскаль). Типы данных. Целые и вещественные числа.
Типы данных в языках программирования определяют какое значение может принимать, в общем случае, переменная. Паскаль характерен строгой типизацией. Это означает: что переменная одного типа не может принимать значение другого типа. Такой подход к проектированию разработки прививает к правильному (системному мышлению) в программировании. С другой стороны, вы как программист, можете быть уверены, что какая-то переменная, на каком-то участке проекта, не поменяет свой тип данных.
Рассмотрим целые и вещественные числа. Программисты применяют переменные этих типов достаточно широко в программировании (в нашем случае в Паскале).
Группа целых чисел
| Название типа | Идентификатор | Длина (байт) | Диапазон значений |
| Короткое целое со знаком | shortint | 1 | -128..127 |
| Целое со знаком | integer | 2 | -32768..32767 |
| Длинное целое со знаком | longint | 4 | -2147483648..2147483647 |
| Короткое целое без знака | byte | 1 | 0..255 |
| Целое без знака | word | 2 | 0..65535 |
Группа вещественных чисел
| Название типа | Идентификатор | Длина (байт) | Диапазон значений |
| Вещественное одинарной точности | single | 4 | 1,5×10 -45 … 3,4×10 38 |
| Вещественное | real | 6 | 2,9×10 -39 … 1,7×10 38 |
| Вещественное с двойной точностью | double | 8 | 5×10 -324 … 1,7×10 308 |
| Вещественное с повышенной точностью | extended | 10 | 3,4×10 -4932 .. 1,1×10 4932 |
| Целое в формате вещественного | comp | 8 | -9,2×10 18 … 9,2×10 18 |
Типы данных целые и вещественные числа в Паскале (Pascal).

Сложность : легкая .
Решение задачи Pascal :
Для начала продумаем решение. Первым делом попросим пользователя ввести число которое он хочет делить и число на которое он хочет делить. Дальше будем использовать условие. В котором будем применять операцию mod, которая находит остаток от деления.
Для того чтобы определить делиться ли нацело число , нам понадобиться одна переменная под число которое мы будем проверять, переменная под число на которое будем делить и конструкция if then else.
Начнем мы с каркаса нашей программы .
Здесь мы дали нашей программе название, объявили наши переменные , присвоили им целочисленный тип .
Дальше нам надо попросить у пользователя ввести числа.
Теперь у нас есть числа с которыми можно работать . Нам нужно проверить делиться ли оно нацело . Вот здесь нам и поможет конструкция if then else .
Тут мы пишем : если(if) остаток от деления(mod) равен 0 , то мы выводим что число делиться нацело на то число которое мы ввели .
Иначе (else) мы выводим что число не делиться нацело на то число которое мы ввели .
На занятии рассматриваются основные стандартные типы данных в Паскаль, понятие переменной и константы; объясняется, как работать с арифметическими операциями
Содержание:
- Типы данных в Паскале
- Целочисленные типы данных в Паскаль
- Комментарии в Паскале
- Вещественные типы данных в Паскаль
- Приведение типов
- Константы в Паскале
- «Красивый» вывод целых и вещественных чисел
- Арифметические операции в Паскале
- Порядок выполнения операций
- Стандартные арифметические процедуры и функции Pascal
Типы данных в Паскале
Паскаль — это типизированный язык программирования. Это означает, что переменные, в которых хранятся данные, имеют определенный тип данных. Т.е. программе напрямую надо указать, какие данные могут храниться в той или иной переменной: текстовые данные, числовые данные, если числовые — то целочисленные или дробные, и т.п. Это необходимо в первую очередь для того чтобы компьютер «знал», какие операции можно выполнять с этими переменными и как правильно их выполнять.
Например, сложение текстовых данных, или как это правильно называется в программировании — конкатенация — это обычное слияние строк, тогда как сложение числовых данных происходит поразрядно, кроме того, дробные и целые числа складываются тоже по-разному. То же самое касается и других операций.
Рассмотрим наиболее распространенные в Pascal типы данных.
Целочисленные типы данных в Паскаль
| Тип | Диапазон | Требуемая память (байт) |
| byte | 0..255 | 1 |
| shortint | -128..127 | 1 |
| integer | -32768.. 32767 | 2 |
| word | 0..65535 | 2 |
| longint | -2147483648..2147483647 | 4 |
Нужно иметь в виду, что при написании программ в паскале integer (в переводе с англ. целое) является наиболее часто используемым, так как диапазон значений наиболее востребуем. Если необходим более широкий диапазон, используется longint (long integer, в переводе с англ. длинное целое). Тип byte в Паскале используется, когда нет необходимости работать с отрицательными значениями, то же самое касается и типа word (только диапазон значений здесь значительно больше).
Примеры того, как описываются (объявляются) переменные в Паскале:
| Pascal | PascalABC.NET | ||||
|
|
Результат: имя: Петр, возраст: 17
При использовании PascalABC.NET наиболее часто используются следующие целочисленные типы:
| Тип | Длина, байт | Диапазон допустимых значений |
|---|---|---|
| integer | 4 | -2 147 483 648 .. 2 147 483 647 |
| int64 | 8 | -9 223 372 036 854 775 808 .. 9 223 372 036 854 775 807 |
| BigInteger | переменная | неограниченный |
Комментарии в Паскале
Обратите внимание на то, как используются комментарии в Паскале. В примере комментарии, т.е. служебный текст, который «не видим» для компилятора, заключаются в фигурные скобки {}. Обычно комментарии делаются программистами с целью пояснения фрагментов кода. Для однострочных комментариев можно использовать два слэша //:
{Очень простая программа для вывода слова "Привет"} begin // вывод write('Привет'); end.
Задача 5. Население Москвы равняется а=9000000 жителей. Население Нью-Васюков равняется b=1000 жителей. Напишите программу, которая определяет разницу в числе жителей между двумя городами. Используйте переменные величины.
[Название файла: L1task5.pas]
Вещественные типы данных в Паскаль
Вещественные числа в Паскале и вообще в программировании — это название дробных чисел.
| Тип | Диапазон | Требуемая память (байт) |
| real | 2.9 * 10E-39 .. 1.7 * 10E38 | 6 |
| single | 1.5 * 10 E-45 .. 3.4 * 10E38 | 4 |
| double | 5 * 10E-324 .. 1.7 * 10E308 | 8 |
| extended | 1.9 * 10E-4951 .. 1.1 * 10E4932 | 10 |
Тип real в Паскале — наиболее часто используемый из вещественных типов.
Выше были представлены простые типы данных в Паскаль, к которым относятся:
- Порядковые
- Целые
- Логические
- Символьные
- Перечисляемые
- Интервальные
- Вещественные
Для вывода значений переменных вещественного типа обычно используется форматированный вывод:
в формате используется либо одно число, означающее число позиций, отводимых на это число в экспоненциальной форме; p:=1234.6789; Writeln(p:12); {_1.2346E+004}либо два числа, первое из которых обозначает общий размер поля, отведенного под это число, второе — число знаков после запятой, т.е. точность. p:=1234.6789; Writeln(p:6:2); {1234.68}
Наряду с простыми типами в языке еще используются структурированные типы данных и указатели, которым будут посвящены последующие уроки по Паскалю.
Приведение типов
В pascalABC.Net в некоторых случаях можно значения одного типа присваивать переменным другого типа.
Значения типов данных, которые занимают меньше памяти, можно присвоить переменным типа данных с бОльшей емкостью. Так, возможны следующие приведения:
integer → int64 int64 → real integer → BigInteger
Пример использования операции приведения типов:
var a := 10; // integer var b := 123456789012345; // int64 var c := -3bi; // BigInteger var i := int64(a); // приведение integer → int64 var x := real(b); // приведение int64 → real var p := BigInteger(a); // приведение integer → BigInteger
Обратное приведение с помощью функций
Обратное приведение, т.е. чтобы присвоить значение большей ёмкости переменной типа данных меньшей емкости, следует использовать функции округления. Например:
real → integer
Пример:
## var x := Sqrt(3); // корень квадратный из 3, тип real var a := Trunc(x); // приведение к integer с отсечением дробной части. рез-т 1 var b := Round(x); // приведение к integer с округлением до ближайшего целого. рез-т 2
Константы в Паскале
Зачастую в программе заранее известно, что переменная будет принимать какое-то конкретное значение и не менять его на протяжении выполнения всей программы. В таком случае необходимо использовать константу.
Объявление константы в Паскале происходит до объявления переменных (до служебного слова var) и выглядит следующим образом:
Пример описания константы в Паскале:
| Pascal | PascalABC.NET | ||||
|
|
«Красивый» вывод целых и вещественных чисел
Для того чтобы после вывода значений переменных оставались отступы, чтобы значения не «сливались» друг с другом, принято через двоеточие указывать какое количество символов нужно предусмотреть для вывода значения:
Вывод целых чисел
Вывод вещественных чисел
Арифметические операции в Паскале
| ДЕЙСТВИЕ | РЕЗУЛЬТАТ | СМЫСЛ |
|---|---|---|
| 2 + 3 | 5 | плюс |
| 4 — 1 | 3 | минус |
| 2 * 3 | 6 | умножить |
| 10 / 5 | 2 | разделить |
| 10 ** 2 | 100 | возведение в степень с результатом типа real |
| 17 div 5 | 3 | целочисленное деление |
| 17 mod 5 | 2 | остаток от целочисленного деления |
Порядок выполнения операций
- вычисление выражений в скобках;
- умножение, деление, div, mod слева направо;
- сложение и вычитание слева направо.
Канонический способ:
var a: integer; b: real; begin a := 1; writeln('a := 1; a = ',a); a += 2; // Увеличение на 2 writeln('a += 2; a = ',a); a *= 3; // Умножение на 3 writeln('a *= 3; a = ',a); writeln; b := 6; writeln('b := 6; b = ',b); r /= 2; writeln('b /= 2; b = ',b); end.
Стандартные арифметические процедуры и функции Pascal
Здесь стоит более подробно остановиться на некоторых арифметических операциях.
- Операция
incв Паскале, произносимая как инкремент, это стандартная процедура pascal, которая обозначает увеличение на единицу. - Аналогично работает процедура
Decв Паскале:Dec(x)— уменьшает x на 1 (декремент) илиDec(x,n)— уменьшает x на n. - Оператор
absпредставляет собой модуль числа. Работает следующим образом: - Оператор
divв паскале является часто используемым, так как целый ряд задач связан с действием деление нацело. -
Остаток от деления или оператор
modв pascal тоже незаменим при решении ряда задач. - Заслуживающей внимания является стандартная функция
oddПаскаля, которая определяет, является ли целое число нечетным. Т. е. возвращаетtrue(истина) для нечетных чисел,false(ложь) для четных чисел. - Функция
expв паскале возвращает экспоненту параметра. Записывается какexp(x), где x типа real. - Квадрат числа в Паскале вычисляется при помощи процедуры
sqr. - Операция возведение в степень в Паскале отсутствует как таковая. Но для того чтобы возвести в степень число можно использовать функцию
exp. - Извлечь квадратный корень в Паскале можно при помощи процедуры
sqrt.
Пример операции inc:
1 2 3 |
x:=1; inc(x); {Увеличивает x на 1, т.е. x=2} writeln (х) |
Более сложное использование процедуры inc:
Inc(x,n) где x — порядкового типа, n — целого типа; процедура inc увеличивает x на n.
a:=-9; b:=abs(a); { b = 9}
Пример использования функции odd:
1 2 3 4 |
begin WriteLn(Odd(5)); {True} WriteLn(Odd(4)); {False} end. |
Пример использования процедуры sqr в Pascal:
1 2 3 4 5 |
var x:integer; begin x:=3; writeln(sqr(x)); {ответ 9} end. |
Формула такая: exp(ln(a)*n), где а — число, n — степень (а>0).
Однако в компиляторе pascal abc возведение в степень осуществляется значительно проще:
WriteLn(Power(2,3)); {ответ 8}
Пример использования процедуры sqrt в Pascal:
1 2 3 4 5 |
var x:integer; begin x:=9; writeln(sqrt(x)); {ответ 3} end. |
Задача 6. Известны размеры спичечной коробки: высота — 12.41 см., ширина — 8 см., толщина — 5 см. Вычислить площадь основания коробки и ее объем
(S=ширина * толщина, V=площадь*высота)
[Название файла: L1task6.pas]
Задача 7. В зоопарке три слона и довольно много кроликов, причем количество кроликов часто меняется. Слону положено съедать в сутки сто морковок, а кролику — две. Каждое утро служитель зоопарка сообщает компьютеру количество кроликов. Компьютер в ответ на это должен сообщить служителю общее количество морковок, которые сегодня нужно скормить кроликам и слонам.
[Название файла: L1task7.pas]
Задача 8. Известно, что x кг конфет стоит a рублей. Определите, сколько стоит y кг этих конфет, а также, сколько килограмм конфет можно купить на k рублей. Все значения вводит пользователь.
[Название файла: L1task8.pas]
В приведенных ниже примерах все функции имеют аргументы. Аргументы
m и n имеют целочисленный тип,
a и b – тип real,
x и y – любой из этих типов.
Abs(x) – возвращает абсолютное значение аргумента x; Ceil(x) - возвращает ближайшее целое, не меньшее, чем х; Floor(x) - возвращает ближайшее целое, не превышающее х; Frac(x) - возвращает дробную часть аргумента x; Max(x, y, …) – возвращает максимальное из значений x, y, …; Min(x, y, …) – возвращает минимальное из значений x, y, … ; Random(m) – возвращает случайное число из интервала [0 ; m-1]; Random(a) – возвращает случайное число из интервала [0 ; a); Random(m, n) – возвращает случайное число из интервала [m ; n]; Random(a, b) – возвращает случайное число из интервала [a ; b); Random2(m) – возвращает кортеж из двух случайных чисел в интервале [0 ; m-1]; Random2(a) – возвращает кортеж из двух случайных чисел в интервале [0 ; a); Random2(m, n) – возвращает кортеж из двух случайных чисел в интервале [m ; n]; Random2(a, b) – возвращает кортеж из двух случайных чисел в интервале [a ; b); Random3(m) – возвращает кортеж из трех случайных чисел в интервале [0 ; m-1]; Random3(a, b) – возвращает кортеж из трех случайных чисел в интервале [a ; b); Round(x) - возвращает округленное до целых по правилам арифметики значение типа integer; Round(x, n) - возвращает значение х, округленное до n знаков в дробной части; Sign(x) – возвращает -1 при x < 0, 0 при x = 0 и 1 при x > 0; Sin(x) – возвращает sin(x) типа real; Sqr(a) – возвращает a2; Sqr(m) – возвращает m2 типа int64; Sqrt(x) – возвращает √x типа real; Trunc(a) – возвращает целую часть значения a того же типа

Найти все целые числа из промежутка от 1 до 300, у которых ровно пять делителей



