Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/26: Рейтинг темы: голосов - 26, средняя оценка - 4.88
1 / 1 / 1
Регистрация: 22.04.2013
Сообщений: 5

Возвести число 2 в степень 500

22.04.2013, 07:24. Показов 5491. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Хотел попросить помощи с задачками, похожих не нашел, создал тему. Заранее спасибо!

Задача 1. Возвести число 2 в степень 500. И вывести все символы на экран, т.е. число*е-100500 не принимается.
Pascal
1
2
3
4
5
6
7
8
9
10
11
Program CS;
var
    st,i: integer;
    rez: real;
begin
st := 500;
rez := 1;
For i := 1 to st do
  rez := rez * 2;
writeln (rez);
end.
У меня получилось только так(((
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.04.2013, 07:24
Ответы с готовыми решениями:

Возвести в степень число, если число больше нуля, то да
Работа в Паскаль Надо возвести в степень число, если число больше нуля, то да

Возвести число в степень
заданное число N является степенью числа a (показатель степени может находиться в диапазоне от 0 до 4)

Как возвести число в степень
Помогите с программкой, замучился со степенью отрицательной и дробной, пробовал exp(x*ln(y)) но так нельзя отрицательную степень сделать,...

7
11 / 11 / 6
Регистрация: 04.01.2013
Сообщений: 67
23.04.2013, 23:25
В этом случае нужно умножать посимвольно саму строку, как мы делаем это на листке.
Вот пример кода:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
program power;
 
var
  s: string;
  n, i: integer;
 
function mult_2(s: string): string;
var
  i, k, m: integer;
begin
  s := '0' + s;
  m := 0;
  for i := length(s) downto 1 do
  begin
    k := strtoint(s[i]) * 2 + m;
    m := k div 10;
    s[i] := chr(k mod 10 + ord('0'));
  end;
  if s[1] = '0' 
    then s := copy(s, 2, length(s) - 1);
  result := s;
end;
 
begin
  readln(n);
  s := '1';
  for i := 1 to n do
    s := mult_2(s);
  writeln(s);
end.
2
1 / 1 / 1
Регистрация: 22.04.2013
Сообщений: 5
23.04.2013, 23:34  [ТС]
Спасибо! То что надо!
Вот ещё программу переписал на вычисление всех степеней двойки до заданной, в программе можно переписать для нужного числа.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
Program DlUmn;
Const NMax = 2000;
Type Digit = 0..9; DlChislo = Array[1..Nmax] Of Digit;
Var t,st:integer;
    S : String;
    M, N, R, F : DlChislo;
    I, MaxF : Word;
    Logic : Boolean;
{Процедура обнуления длинного числа}
Procedure Zero(Var A : DlChislo);
Var I : Integer;
  Begin
    For I := 1 To NMax Do A[I] := 0;
  End;
{Функция определения количества цифр в записи длинного числа}
Function Dlina(C : DlChislo) : Integer;
Var I : Integer;
 Begin
   I := NMax;
   While (I > 1) And (C[I] = 0) Do I := I - 1;
   Dlina := I
 End;
{Процедура печати длинного числа}
Procedure Print(A : DlChislo);
Var I : Integer;
 Begin
    For I := Dlina(A) DownTo 1 Do Write(A[I] : 1);
    WriteLn
 End;
{Процедура преобразования длинного числа в массив цифр}
Procedure Translate(S : String; Var A : DlChislo;
                    Var OK : Boolean);
Var I : Word;
 Begin
   Zero(A); I := Length(S); OK := True;
   While (I >= 1) And OK Do
   Begin
      If S[I] In ['0'..'9']
      Then A[Length(S) - I+ 1] := Ord(S[I]) - 48
      Else OK := False;
      I := I - 1
   End
 End;
Procedure Multiplication(A, B : DlChislo; Var C : DlChislo);
Var I, J : Integer; P : Digit; VspRez : 0..99;
 Begin
  Zero(C);
  For I := 1 To Dlina(A) Do
  Begin P := 0;
        For J := 1 To Dlina(B) Do
        Begin
          VspRez := A[I] * B[J] + P + C[I + J - 1];
        C[I + J - 1] := VspRez Mod 10;
        P := VspRez Div 10
      End;
        C[I + J] := P
   End
 End;
{Основная программа}
Begin
    Writeln('Введите нужную степень');
    Readln(st);
    Zero(F);
    F[1] := 1;
    For t := 1 To st Do
     Begin
       I:=2;
       Str(I, S); {преобразование числа I к строковому типу S}
       Translate(S, M, Logic);
       Multiplication(F, M, F);
       WriteLn(t,' ','степень числа 2');
       Print(F);
     End
End.
0
11 / 11 / 6
Регистрация: 04.01.2013
Сообщений: 67
24.04.2013, 07:26
Если я правильно понял задачу, то это можно сделать проще)
Хватит строкового типа
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
program power;
 
var
  s: string;
  n, i, num: integer;
 
 
function mult(s: string): string;
var
  i, k, m, l: integer;
begin
  for i := 1 to ceil(log10(num)) do
    s := '0' + s;
  m := 0;
  l := 0;
  for i := length(s) downto 1 do
  begin
    k := strtoint(s[i]) * num + m;
    l := k div 10 + l div 10;
    m := l mod 10;
    s[i] := chr(k mod 10 + ord('0'));
  end;
  while s[1] = '0' do
    s := copy(s, 2, length(s) - 1);
  result := s;
end;
 
begin
  readln(num, n);
  s := '1';
  for i := 1 to n do
    s := mult(s);
  writeln(s);
end.
0
1 / 1 / 1
Регистрация: 22.04.2013
Сообщений: 5
24.04.2013, 17:20  [ТС]
Окей, красавчик, уделал!)))
0
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,360
24.04.2013, 20:02
Эх а я такое писал,дело в том что в обычном Паскале нет IntToStr и StrToInt потому две лишних функции писал.
0
11 / 11 / 6
Регистрация: 04.01.2013
Сообщений: 67
24.04.2013, 20:06
Так тред про ABC, так что...
0
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,360
24.04.2013, 20:10
В том то и дело,в ABC проще.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.04.2013, 20:10
Помогаю со студенческими работами здесь

Как возвести отрицательное число в степень
как возвести отрицательное число в степень? var a, n: real; begin readln(a);readln(n); writeln(exp(ln(-a)*n)); end.

Даны целые числа m и n. Возвести число m в степень n
Доброго времени суток! помогите решить данную задачу в паскале АВС или Турбо Паскаль 7.0 Даны целые числа m и n. Возвести число m в...

Возвести заданное вещественное число α в целую степень k
Возвести заданное вещественное число α в целую степень k, не пользуясь операцией возведения в степень и не производя(k-1)умножений и...

Возвести число в степень (основание и показатель степени записаны в P-ичной системе счисления)
Задача в Pascal (модули) Возвести число в степень (основание и показатель степени записаны в P-ичной системе счисления). Результат...

Возвести в степень n число k
Составить программу, которая с помощью цикла преподносит в степень n число k.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Ниже машинный перевод статьи The Thinkpad X220 Tablet is the best budget school laptop period . Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы,. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru