SlideShare a Scribd company logo
Одноцифрова довга арифметика
a=23851674

      Кожну цифру будемо зберігати в окремій комірці лінійної таблиці. Причому в
a[0] будемо зберігати кількість цифр в довгому числі, а цифри будемо записувати в
оберненому порядку для зручності виконання арифметичних операцій.

 a[0]    a[1]     a[2]    a[3]       a[4]   a[5]   a[6]   a[7]   a[8]   a[9]   a[10]
  8       4        7       6          1      5      8      3      2      0       0

                            Запис довгого числа в таблицю a
 a[0]    a[1]     a[2]    a[3]    a[4]    a[5]    a[6]   a[7]    a[8]   ch
  0       0        0       0       0       0       0      0       0     2
  1       2        0       0       0       0       0      0       0     3
  2       0        2       0       0       0       0      0       0     3
  2       3        2       0       0       0       0      0       0     8
  3       0        3       2       0       0       0      0       0     8
  3       8        3       2       0       0       0      0       0     5
  4       0        8       3       2       0       0      0       0     5
  4       5        8       3       2       0       0      0       0     1
  5       0        5       8       3       2       0      0       0     1
  5       1        5       8       3       2       0      0       0     6
  6       0        1       5       8       3       2      0       0     6
  6       6        1       5       8       3       2      0       0     7
  7       0        6       1       5       8       3      2       0     7
  7       7        6       1       5       8       3      2       0     4
  8       0        7       6       1       5       8      3       2     4
  8       4        7       6       1       5       8      3       2      -

                            Алгоритм заповнення таблиці а

   1. Обнулюємо таблицю а.
   2. Зчитуємо одну цифру з файла і записуємо її в a[1].
   3. Записуємо в a[0] 1.
   4. Переміщаємо всі a[o] цифр на одну позицію вправо.( готуючи a[1] для запису
      наступної цифри).
   5. Збільшуємо значення a[0] на 1.
   6. Записуємо в a[1] наступну цифру.

і т. д. поки не закінчаться цифри.
#include<fstream.h>
#include<iostream.h>
#include<string.h>
#include<stdlib.h>
const md=1000, // Кількість цифр
      osn=10; // Основа числення (максимальна цифра osn-1)
typedef int tlong[md]; // Опис типу довгого числа
ifstream f("long1.txt");
tlong a;
char ch;

// Підпрограма для читання довгого числа
void readlong(tlong a)
{
  for (int i=0;i<1000;i++) a[i]=0; // Обнулення довгого числа а;
  do
   {
      f>>ch; // Зчитування числа з файла
      for (i=a[0];i>=1;i--)
        {
          a[i+1]=a[i]; // Переміщення всіх цифр на одну позицію вправо
        }
      a[1]=int(ch)-int('0');
      a[0]++;
    }
   while (f.peek()!='n'); // Перевірка кінця рядка (файла)

} // Кінець підпрограми

void main() // Початок основної програми
{
  int i;
  cout<<”n”;
  readlong(a);
  cout<<”n”;
  for (i=a[0]; i>=1; i--) // Вивід довгого числа на екран
     cout<<a[i];
  cout<<”n”;

}
Додавання довгих чисел

       а=456789
       в=8743

  a[0]        a[1]       a[2]       a[3]       a[4]      a[5]       a[6]       a[7]
   6           9          8          7          6         5          4          0

  b[0]        b[1]       b[2]       b[3]       b[4]      b[5]       b[6]       b[7]
   4           3          4          7          8         0          0          0

  c[0]       c[1]       c[2]     c[3]     c[4]     c[5]    c[6]                c[7]
   0           0         0        0        0        0       0                   0
   6        9+3=12       0        0        0        0       0                   0
   6           2         1        0        0        0       0                   0
   6           2      8+4+1=13    0        0        0       0                   0
   6           2         3        1        0        0       0                   0
   6           2         3     7+7+1=15    0        0       0                   0
   6           2         3        5        1        0       0                   0
   6           2         3        5     6+8+1=15    0       0                   0
   6           2         3        5        5        1       0                   0
   6           2         3        5        5     5+0+1=6    0                   0
   6           2         3        5        5        6    4+0+0=4                0
   6           2         3        5        5        6       4                   0


Отже с=465532.

                                 Алгоритм додавання

  1. Знаходимо      в якому з чисел більше цифр і присвоюємо це число к
       (k=max(a[0],b[0]).
  2.   Додаємо a[1] i b[1].
  3.   Число одиниць записуємо в c[1], а число десятків (1) переносимо в c[2], якщо
       a[1]+b[1]>9.
  4.   Починаючи з i=2 і до к знаходимо s=a[i]+b[i]+c[i]. Число одиниць знайденої суми
       записуємо в c[i]. Якщо s>9 то записуємо 1 в c[i+1].
  5.   Якщо на к+1 позиції появилась 1, то збільшуємо кількість цифр в c[0] на 1.
Програма на С++

#include<fstream.h>
#include<iostream.h>
#include<string.h>
#include<stdlib.h>
const md=1000, // Кількість цифр
      osn=10; // Основа числення (максимальна цифра osn-1)
typedef int tlong[md]; // Опис типу довгого числа
ifstream f("long1.txt");
tlong a,b,c;
char ch;

// Підпрограма для читання довгого числа
void readlong(tlong a)
{
  for (int i=0;i<1000;i++) a[i]=0; // Обнулення довгого числа а;
  do
   {
      f>>ch; // Зчитування числа з файла
      for (i=a[0];i>=1;i--)
         {
           a[i+1]=a[i]; // Переміщення всіх цифр на одну позицію вправо
         }
      a[1]=int(ch)-int('0');
      a[0]++;
    }
   while (f.peek()!='n'); // Перевірка кінця рядка (файла)

} // Кінець підпрограми

void writelong(tlong a)
{
   int i;
   cout<<"n";
  for (i=a[0]; i>=1; i--) // Вивід довгого числа на екран
     cout<<a[i];
  cout<<"n";
}

void sumlong(tlong a, tlong b)
{
 int k;
 for (int i=0;i<1000;i++) c[i]=0;
 if (a[0]>b[0]) k=a[0]; else k=b[0];
 for ( i=1; i<=k; i++)
    { c[i+1]=(c[i]+a[i]+b[i])/osn;
c[i]=(c[i]+a[i]+b[i])%osn;
    }
        if (c[k+1]==0) c[0]=k; else c[0]=++k;

}

void main() // Початок основної програми
{
   readlong(a);
   readlong(b);
   sumlong(a,b);
   writelong(c);
 }

                                      Віднімання довгих чисел

          а=456201
          в=8743

    a[0]           a[1]        a[2]       a[3]      a[4]        a[5]    a[6]    a[7]
     6              1           0          2         6           5       4       0

    b[0]           b[1]       b[2]        b[3]      b[4]        b[5]    b[6]    b[7]
     4              3          4           7         8           0       0       0

    a[0]          a[1]        a[2]        a[3]       a[4]        a[5]    a[6]   a[7]
     6              1           0           2          6          5       4      0
     6           1-3=-2         0           2          6          5       4      0
     6          -2+10=8      0-1=-1         2          6          5       4      0
     6              8       -1+10=9      2-1=1         6          5       4      0
     6              8        9-4=5          1          6          5       4      0
     6              8           5        1-7=-6        6          5       4      0
     6              8           5       -6+10=4     6-1=5         5       4      0
     6              8           5           4       5-8=-3        5       4      0
     6              8           5           4      -3+10=7      5-1=4     4      0
     6              8           5           4          7        4-0=4     4      0
     6              8           5           4          7          4     4-0=4    0
     6              8           5           4          7          4       4      0

Отже a-b=447458.
Алгоритм віднімання

   1. k=a[0].
   2. Для і від 1 до к: знаходимо a[i]=a[i]-b[i] .
   3. Якщо a[i]<0, то позичаємо десяток в наступному розряді ( a[i]=a[i]+10;
      a[i+1]=a[i+1]-1;) . Якщо наступний розряд стає від’ємним, то позичаємо десяток в
      слідуючому розряді і т. д. поки є від’ємні числа.
   Шукана різниця буде в таблиці а.


                                    Програма на мові С++

#include<fstream.h>
#include<iostream.h>
#include<string.h>
#include<stdlib.h>
const md=1000, // Кількість цифр
      osn=10; // Основа числення (максимальна цифра osn-1)
typedef int tlong[md]; // Опис типу довгого числа
ifstream f("long1.txt");
tlong a,b,c;
char ch;

// Підпрограма для читання довгого числа
void readlong(tlong a)
{
  for (int i=0;i<1000;i++) a[i]=0; // Обнулення довгого числа а;
  do
   {
      f>>ch; // Зчитування числа з файла
      for (i=a[0];i>=1;i--)
         {
           a[i+1]=a[i]; // Переміщення всіх цифр на одну позицію вправо
         }
      a[1]=int(ch)-int('0');
      a[0]++;
    }
   while (f.peek()!='n'); // Перевірка кінця рядка (файла)

} // Кінець підпрограми

void writelong(tlong a)
{
   int i;
   cout<<"n";
  for (i=a[0]; i>=1; i--) // Вивід довгого числа на екран
     cout<<a[i];
cout<<"n";
}

void sublong(tlong a, tlong b)
{
  int i,j;
  for (i=1;i<=b[0];i++)
   {
     a[i]- =b[i];
     j=i;
     while ((a[j]<0) && (j<=a[0])) // Позичання десятку
         {
           a[j]+=osn; a[j+1]--; j++;
         }
   }
   i=a[0];
   while ((i>1)&&(a[i]==0)) i++;
   a[0]=i; // Перевірка кількості цифр


}


void main() // Початок основної програми
{
   readlong(a);
   readlong(b);
   sublong(a,b);
   writelong(a);
 }

More Related Content

What's hot

рівняння і нерівності з модулем Командірова О.Л.
рівняння і нерівності з модулем Командірова О.Л.рівняння і нерівності з модулем Командірова О.Л.
рівняння і нерівності з модулем Командірова О.Л.
jkmuffgrhdcv
 
8_gdz_a_i.pdf
8_gdz_a_i.pdf8_gdz_a_i.pdf
8_gdz_a_i.pdf
Mihailichenk Lud
 
рацIонал нi числа,_6_клас_презентацiя
рацIонал нi числа,_6_клас_презентацiярацIонал нi числа,_6_клас_презентацiя
рацIонал нi числа,_6_клас_презентацiя
Andy Levkovich
 
Відповіді ДПА 2021 4 клас Математика. Пархоменко Генеза
Відповіді ДПА 2021 4 клас Математика. Пархоменко ГенезаВідповіді ДПА 2021 4 клас Математика. Пархоменко Генеза
Відповіді ДПА 2021 4 клас Математика. Пархоменко Генеза
ErudytNet
 
Бевз ДПА 2021 Математика Збірник підсумкових контрольних робіт 4 клас Освіта
Бевз ДПА 2021 Математика Збірник підсумкових контрольних робіт 4 клас ОсвітаБевз ДПА 2021 Математика Збірник підсумкових контрольних робіт 4 клас Освіта
Бевз ДПА 2021 Математика Збірник підсумкових контрольних робіт 4 клас Освіта
ErudytNet
 
Відповіді ДПА 2021 математика 4 клас, Листопад, Оріон
Відповіді ДПА 2021 математика 4 клас, Листопад, ОріонВідповіді ДПА 2021 математика 4 клас, Листопад, Оріон
Відповіді ДПА 2021 математика 4 клас, Листопад, Оріон
ErudytNet
 
Презентація:Ділення десяткових дробів на десятковий дріб
Презентація:Ділення десяткових дробів на десятковий дрібПрезентація:Ділення десяткових дробів на десятковий дріб
Презентація:Ділення десяткових дробів на десятковий дріб
sveta7940
 
1
11
1
8new
 
4 dpa 2019 mathematics listopad
4 dpa 2019 mathematics listopad4 dpa 2019 mathematics listopad
4 dpa 2019 mathematics listopad
Vitalik Migur
 
контр робота з алг
контр робота з алгконтр робота з алг
контр робота з алг
jkmuffgrhdcv
 
завдання контрольної № 1 по темах 1-7
завдання контрольної №  1 по темах 1-7завдання контрольної №  1 по темах 1-7
завдання контрольної № 1 по темах 1-7
cit-cit
 
десяткові дроби
десяткові дробидесяткові дроби
десяткові дроби
Sv1tsun
 
1
11
1
8new
 
Відповіді ДПА 2020 4 клас математика, Бевз, Освіта
Відповіді ДПА 2020 4 клас математика, Бевз, ОсвітаВідповіді ДПА 2020 4 клас математика, Бевз, Освіта
Відповіді ДПА 2020 4 клас математика, Бевз, Освіта
SolomijMelnyk
 
4 class dpa 2019 mathematics parkhomenko
4 class dpa 2019 mathematics parkhomenko4 class dpa 2019 mathematics parkhomenko
4 class dpa 2019 mathematics parkhomenko
Vitalik Migur
 
Культура математичного мовлення рекомендації зоіппо
Культура математичного мовлення рекомендації зоіппоКультура математичного мовлення рекомендації зоіппо
Культура математичного мовлення рекомендації зоіппо
tetana38
 
2406 инд зад дес др 5 кл
2406 инд зад дес др 5 кл2406 инд зад дес др 5 кл
2406 инд зад дес др 5 клurvlan
 
Задачі на дві дії
Задачі на дві діїЗадачі на дві дії
Задачі на дві дії
ssuser66cc4d
 
9 алг мерзляк_рабінович_задачн_контр_2009_укр
9 алг мерзляк_рабінович_задачн_контр_2009_укр9 алг мерзляк_рабінович_задачн_контр_2009_укр
9 алг мерзляк_рабінович_задачн_контр_2009_укр
Aira_Roo
 

What's hot (19)

рівняння і нерівності з модулем Командірова О.Л.
рівняння і нерівності з модулем Командірова О.Л.рівняння і нерівності з модулем Командірова О.Л.
рівняння і нерівності з модулем Командірова О.Л.
 
8_gdz_a_i.pdf
8_gdz_a_i.pdf8_gdz_a_i.pdf
8_gdz_a_i.pdf
 
рацIонал нi числа,_6_клас_презентацiя
рацIонал нi числа,_6_клас_презентацiярацIонал нi числа,_6_клас_презентацiя
рацIонал нi числа,_6_клас_презентацiя
 
Відповіді ДПА 2021 4 клас Математика. Пархоменко Генеза
Відповіді ДПА 2021 4 клас Математика. Пархоменко ГенезаВідповіді ДПА 2021 4 клас Математика. Пархоменко Генеза
Відповіді ДПА 2021 4 клас Математика. Пархоменко Генеза
 
Бевз ДПА 2021 Математика Збірник підсумкових контрольних робіт 4 клас Освіта
Бевз ДПА 2021 Математика Збірник підсумкових контрольних робіт 4 клас ОсвітаБевз ДПА 2021 Математика Збірник підсумкових контрольних робіт 4 клас Освіта
Бевз ДПА 2021 Математика Збірник підсумкових контрольних робіт 4 клас Освіта
 
Відповіді ДПА 2021 математика 4 клас, Листопад, Оріон
Відповіді ДПА 2021 математика 4 клас, Листопад, ОріонВідповіді ДПА 2021 математика 4 клас, Листопад, Оріон
Відповіді ДПА 2021 математика 4 клас, Листопад, Оріон
 
Презентація:Ділення десяткових дробів на десятковий дріб
Презентація:Ділення десяткових дробів на десятковий дрібПрезентація:Ділення десяткових дробів на десятковий дріб
Презентація:Ділення десяткових дробів на десятковий дріб
 
1
11
1
 
4 dpa 2019 mathematics listopad
4 dpa 2019 mathematics listopad4 dpa 2019 mathematics listopad
4 dpa 2019 mathematics listopad
 
контр робота з алг
контр робота з алгконтр робота з алг
контр робота з алг
 
завдання контрольної № 1 по темах 1-7
завдання контрольної №  1 по темах 1-7завдання контрольної №  1 по темах 1-7
завдання контрольної № 1 по темах 1-7
 
десяткові дроби
десяткові дробидесяткові дроби
десяткові дроби
 
1
11
1
 
Відповіді ДПА 2020 4 клас математика, Бевз, Освіта
Відповіді ДПА 2020 4 клас математика, Бевз, ОсвітаВідповіді ДПА 2020 4 клас математика, Бевз, Освіта
Відповіді ДПА 2020 4 клас математика, Бевз, Освіта
 
4 class dpa 2019 mathematics parkhomenko
4 class dpa 2019 mathematics parkhomenko4 class dpa 2019 mathematics parkhomenko
4 class dpa 2019 mathematics parkhomenko
 
Культура математичного мовлення рекомендації зоіппо
Культура математичного мовлення рекомендації зоіппоКультура математичного мовлення рекомендації зоіппо
Культура математичного мовлення рекомендації зоіппо
 
2406 инд зад дес др 5 кл
2406 инд зад дес др 5 кл2406 инд зад дес др 5 кл
2406 инд зад дес др 5 кл
 
Задачі на дві дії
Задачі на дві діїЗадачі на дві дії
Задачі на дві дії
 
9 алг мерзляк_рабінович_задачн_контр_2009_укр
9 алг мерзляк_рабінович_задачн_контр_2009_укр9 алг мерзляк_рабінович_задачн_контр_2009_укр
9 алг мерзляк_рабінович_задачн_контр_2009_укр
 

Viewers also liked

The Frohlings
The FrohlingsThe Frohlings
The Frohlings
guestf5cbd384
 
Pupils profiling
Pupils profilingPupils profiling
Pupils profilingNancy Damo
 
The Many Me: Introduction to Jason YIp
The Many Me: Introduction to Jason YIpThe Many Me: Introduction to Jason YIp
The Many Me: Introduction to Jason YIp
Jayshen84
 
Les Accros de la Musique | Synthèse 2015
Les Accros de la Musique | Synthèse 2015Les Accros de la Musique | Synthèse 2015
Les Accros de la Musique | Synthèse 2015
Institut des Métiers de la Musique | IMM
 
A Vile - Vile Anindol
A Vile - Vile AnindolA Vile - Vile Anindol
A Vile - Vile Anindol
guest509aa07d
 
Orgdot company info. - Japanese
Orgdot company info. - JapaneseOrgdot company info. - Japanese
Orgdot company info. - Japaneseorgdot
 
Es p g1 teacher's guide (q1&2)
Es p g1 teacher's guide (q1&2)Es p g1 teacher's guide (q1&2)
Es p g1 teacher's guide (q1&2)
Nancy Damo
 
Imm Enquête Accros de la Musique 2013
Imm Enquête Accros de la Musique 2013Imm Enquête Accros de la Musique 2013
Imm Enquête Accros de la Musique 2013
Institut des Métiers de la Musique | IMM
 
Math gr. 1 l ms (q1)
Math gr. 1 l ms (q1)Math gr. 1 l ms (q1)
Math gr. 1 l ms (q1)
Nancy Damo
 
Ap teacher's guide (q1&2)
Ap teacher's guide (q1&2)Ap teacher's guide (q1&2)
Ap teacher's guide (q1&2)Nancy Damo
 
Bediuzzaman Said Nursi
Bediuzzaman Said Nursi Bediuzzaman Said Nursi
Bediuzzaman Said Nursi
mehasl
 
ConfSharePoint 2013 - Session Plénière J02 - Faire du Social une Réalité
ConfSharePoint 2013 - Session Plénière J02 - Faire du Social une RéalitéConfSharePoint 2013 - Session Plénière J02 - Faire du Social une Réalité
ConfSharePoint 2013 - Session Plénière J02 - Faire du Social une RéalitéJonathan Barbosa
 
Rctm Le Club, Groupement des Partenaires
Rctm Le Club, Groupement des PartenairesRctm Le Club, Groupement des Partenaires
Rctm Le Club, Groupement des Partenaires
guiomb
 
Math gr. 1 l ms (q2)
Math gr. 1 l ms (q2)Math gr. 1 l ms (q2)
Math gr. 1 l ms (q2)
Nancy Damo
 
Health gr. 1 teacher's guide (q1&2)
Health gr. 1 teacher's guide (q1&2)Health gr. 1 teacher's guide (q1&2)
Health gr. 1 teacher's guide (q1&2)
Nancy Damo
 
Music gr. 1 teacher's guide (q1&2)
Music gr. 1 teacher's guide (q1&2)Music gr. 1 teacher's guide (q1&2)
Music gr. 1 teacher's guide (q1&2)
Nancy Damo
 
Filipino gr. 1 teacher's guide (q1&2)
Filipino gr. 1 teacher's guide (q1&2)Filipino gr. 1 teacher's guide (q1&2)
Filipino gr. 1 teacher's guide (q1&2)
Nancy Damo
 
Art gr.1 teacher's guide (q1&2)
Art gr.1 teacher's guide (q1&2)Art gr.1 teacher's guide (q1&2)
Art gr.1 teacher's guide (q1&2)
Nancy Damo
 
오르그닷 제품소개서
오르그닷 제품소개서오르그닷 제품소개서
오르그닷 제품소개서
orgdot
 

Viewers also liked (20)

The Frohlings
The FrohlingsThe Frohlings
The Frohlings
 
Pupils profiling
Pupils profilingPupils profiling
Pupils profiling
 
The Many Me: Introduction to Jason YIp
The Many Me: Introduction to Jason YIpThe Many Me: Introduction to Jason YIp
The Many Me: Introduction to Jason YIp
 
Les Accros de la Musique | Synthèse 2015
Les Accros de la Musique | Synthèse 2015Les Accros de la Musique | Synthèse 2015
Les Accros de la Musique | Synthèse 2015
 
A Vile - Vile Anindol
A Vile - Vile AnindolA Vile - Vile Anindol
A Vile - Vile Anindol
 
Orgdot company info. - Japanese
Orgdot company info. - JapaneseOrgdot company info. - Japanese
Orgdot company info. - Japanese
 
Es p g1 teacher's guide (q1&2)
Es p g1 teacher's guide (q1&2)Es p g1 teacher's guide (q1&2)
Es p g1 teacher's guide (q1&2)
 
Imm Enquête Accros de la Musique 2013
Imm Enquête Accros de la Musique 2013Imm Enquête Accros de la Musique 2013
Imm Enquête Accros de la Musique 2013
 
Math gr. 1 l ms (q1)
Math gr. 1 l ms (q1)Math gr. 1 l ms (q1)
Math gr. 1 l ms (q1)
 
Ap teacher's guide (q1&2)
Ap teacher's guide (q1&2)Ap teacher's guide (q1&2)
Ap teacher's guide (q1&2)
 
Bediuzzaman Said Nursi
Bediuzzaman Said Nursi Bediuzzaman Said Nursi
Bediuzzaman Said Nursi
 
ConfSharePoint 2013 - Session Plénière J02 - Faire du Social une Réalité
ConfSharePoint 2013 - Session Plénière J02 - Faire du Social une RéalitéConfSharePoint 2013 - Session Plénière J02 - Faire du Social une Réalité
ConfSharePoint 2013 - Session Plénière J02 - Faire du Social une Réalité
 
Rctm Le Club, Groupement des Partenaires
Rctm Le Club, Groupement des PartenairesRctm Le Club, Groupement des Partenaires
Rctm Le Club, Groupement des Partenaires
 
Math gr. 1 l ms (q2)
Math gr. 1 l ms (q2)Math gr. 1 l ms (q2)
Math gr. 1 l ms (q2)
 
Health gr. 1 teacher's guide (q1&2)
Health gr. 1 teacher's guide (q1&2)Health gr. 1 teacher's guide (q1&2)
Health gr. 1 teacher's guide (q1&2)
 
Music gr. 1 teacher's guide (q1&2)
Music gr. 1 teacher's guide (q1&2)Music gr. 1 teacher's guide (q1&2)
Music gr. 1 teacher's guide (q1&2)
 
Filipino gr. 1 teacher's guide (q1&2)
Filipino gr. 1 teacher's guide (q1&2)Filipino gr. 1 teacher's guide (q1&2)
Filipino gr. 1 teacher's guide (q1&2)
 
Art gr.1 teacher's guide (q1&2)
Art gr.1 teacher's guide (q1&2)Art gr.1 teacher's guide (q1&2)
Art gr.1 teacher's guide (q1&2)
 
오르그닷 제품소개서
오르그닷 제품소개서오르그닷 제품소개서
오르그닷 제품소개서
 
Mindanao
MindanaoMindanao
Mindanao
 

Similar to 16 Long

тест 6кл(рац ч+координати) Xls2
тест 6кл(рац ч+координати) Xls2тест 6кл(рац ч+координати) Xls2
тест 6кл(рац ч+координати) Xls2vzvvzv
 
1175 96-__
1175  96-__1175  96-__
Порівняння 2
Порівняння 2Порівняння 2
Порівняння 2
Jo01
 
12639 тематичний облік знань з математики
12639 тематичний облік знань з математики12639 тематичний облік знань з математики
12639 тематичний облік знань з математикиurvlan
 
математика піп
математика піпматематика піп
математика піп
RanoUA
 
Множення десяткових дробів
Множення десяткових дробівМноження десяткових дробів
Множення десяткових дробів
ssuseraeea271
 
тригонометрія
тригонометріятригонометрія
тригонометрія
ssuseraaa2c0
 
Peterson l g_matematika_robochii_zoshit_2_klas_4_chastina
Peterson l g_matematika_robochii_zoshit_2_klas_4_chastinaPeterson l g_matematika_robochii_zoshit_2_klas_4_chastina
Peterson l g_matematika_robochii_zoshit_2_klas_4_chastina
Игор Левченко
 
математика 2 кл частина 4
математика 2 кл частина 4математика 2 кл частина 4
математика 2 кл частина 4
Школа Леди и Кадетство
 
Презентація:Ділення раціональних чисел
Презентація:Ділення раціональних чиселПрезентація:Ділення раціональних чисел
Презентація:Ділення раціональних чисел
sveta7940
 
Презентація:Ділення раціональних чисел
Презентація:Ділення раціональних чиселПрезентація:Ділення раціональних чисел
Презентація:Ділення раціональних чисел
sveta7940
 
3 m bud_2020-2
3 m bud_2020-23 m bud_2020-2
3 m bud_2020-2
4book
 
Matematyka 3-klas-budna-2020-2
Matematyka 3-klas-budna-2020-2Matematyka 3-klas-budna-2020-2
Matematyka 3-klas-budna-2020-2
kreidaros1
 
3 klas-matematyka-budna-2020-2
3 klas-matematyka-budna-2020-23 klas-matematyka-budna-2020-2
3 klas-matematyka-budna-2020-2
NoName520
 
9_asz_m_u
9_asz_m_u9_asz_m_u
9_asz_m_u
9klas
 
Algebra zbirnyk-zadach-i-kontrolnyh-robit-9-klas-merzliak
Algebra zbirnyk-zadach-i-kontrolnyh-robit-9-klas-merzliakAlgebra zbirnyk-zadach-i-kontrolnyh-robit-9-klas-merzliak
Algebra zbirnyk-zadach-i-kontrolnyh-robit-9-klas-merzliak
kreidaros1
 
4 klas matematika_zajika_2015
4 klas matematika_zajika_20154 klas matematika_zajika_2015
4 klas matematika_zajika_2015
della street
 
4 klas matematika_zajika_2015
4 klas matematika_zajika_20154 klas matematika_zajika_2015
4 klas matematika_zajika_2015
moyashkolamoyashkola
 

Similar to 16 Long (20)

тест 6кл(рац ч+координати) Xls2
тест 6кл(рац ч+координати) Xls2тест 6кл(рац ч+координати) Xls2
тест 6кл(рац ч+координати) Xls2
 
1175 96-__
1175  96-__1175  96-__
1175 96-__
 
Порівняння 2
Порівняння 2Порівняння 2
Порівняння 2
 
12639 тематичний облік знань з математики
12639 тематичний облік знань з математики12639 тематичний облік знань з математики
12639 тематичний облік знань з математики
 
математика піп
математика піпматематика піп
математика піп
 
Множення десяткових дробів
Множення десяткових дробівМноження десяткових дробів
Множення десяткових дробів
 
тригонометрія
тригонометріятригонометрія
тригонометрія
 
Peterson l g_matematika_robochii_zoshit_2_klas_4_chastina
Peterson l g_matematika_robochii_zoshit_2_klas_4_chastinaPeterson l g_matematika_robochii_zoshit_2_klas_4_chastina
Peterson l g_matematika_robochii_zoshit_2_klas_4_chastina
 
математика 2 кл частина 4
математика 2 кл частина 4математика 2 кл частина 4
математика 2 кл частина 4
 
Презентація:Ділення раціональних чисел
Презентація:Ділення раціональних чиселПрезентація:Ділення раціональних чисел
Презентація:Ділення раціональних чисел
 
Презентація:Ділення раціональних чисел
Презентація:Ділення раціональних чиселПрезентація:Ділення раціональних чисел
Презентація:Ділення раціональних чисел
 
1
11
1
 
3 m bud_2020-2
3 m bud_2020-23 m bud_2020-2
3 m bud_2020-2
 
Matematyka 3-klas-budna-2020-2
Matematyka 3-klas-budna-2020-2Matematyka 3-klas-budna-2020-2
Matematyka 3-klas-budna-2020-2
 
3 klas-matematyka-budna-2020-2
3 klas-matematyka-budna-2020-23 klas-matematyka-budna-2020-2
3 klas-matematyka-budna-2020-2
 
9_asz_m_u
9_asz_m_u9_asz_m_u
9_asz_m_u
 
Algebra zbirnyk-zadach-i-kontrolnyh-robit-9-klas-merzliak
Algebra zbirnyk-zadach-i-kontrolnyh-robit-9-klas-merzliakAlgebra zbirnyk-zadach-i-kontrolnyh-robit-9-klas-merzliak
Algebra zbirnyk-zadach-i-kontrolnyh-robit-9-klas-merzliak
 
Shpargalka
ShpargalkaShpargalka
Shpargalka
 
4 klas matematika_zajika_2015
4 klas matematika_zajika_20154 klas matematika_zajika_2015
4 klas matematika_zajika_2015
 
4 klas matematika_zajika_2015
4 klas matematika_zajika_20154 klas matematika_zajika_2015
4 klas matematika_zajika_2015
 

16 Long

  • 1. Одноцифрова довга арифметика a=23851674 Кожну цифру будемо зберігати в окремій комірці лінійної таблиці. Причому в a[0] будемо зберігати кількість цифр в довгому числі, а цифри будемо записувати в оберненому порядку для зручності виконання арифметичних операцій. a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10] 8 4 7 6 1 5 8 3 2 0 0 Запис довгого числа в таблицю a a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] ch 0 0 0 0 0 0 0 0 0 2 1 2 0 0 0 0 0 0 0 3 2 0 2 0 0 0 0 0 0 3 2 3 2 0 0 0 0 0 0 8 3 0 3 2 0 0 0 0 0 8 3 8 3 2 0 0 0 0 0 5 4 0 8 3 2 0 0 0 0 5 4 5 8 3 2 0 0 0 0 1 5 0 5 8 3 2 0 0 0 1 5 1 5 8 3 2 0 0 0 6 6 0 1 5 8 3 2 0 0 6 6 6 1 5 8 3 2 0 0 7 7 0 6 1 5 8 3 2 0 7 7 7 6 1 5 8 3 2 0 4 8 0 7 6 1 5 8 3 2 4 8 4 7 6 1 5 8 3 2 - Алгоритм заповнення таблиці а 1. Обнулюємо таблицю а. 2. Зчитуємо одну цифру з файла і записуємо її в a[1]. 3. Записуємо в a[0] 1. 4. Переміщаємо всі a[o] цифр на одну позицію вправо.( готуючи a[1] для запису наступної цифри). 5. Збільшуємо значення a[0] на 1. 6. Записуємо в a[1] наступну цифру. і т. д. поки не закінчаться цифри.
  • 2. #include<fstream.h> #include<iostream.h> #include<string.h> #include<stdlib.h> const md=1000, // Кількість цифр osn=10; // Основа числення (максимальна цифра osn-1) typedef int tlong[md]; // Опис типу довгого числа ifstream f("long1.txt"); tlong a; char ch; // Підпрограма для читання довгого числа void readlong(tlong a) { for (int i=0;i<1000;i++) a[i]=0; // Обнулення довгого числа а; do { f>>ch; // Зчитування числа з файла for (i=a[0];i>=1;i--) { a[i+1]=a[i]; // Переміщення всіх цифр на одну позицію вправо } a[1]=int(ch)-int('0'); a[0]++; } while (f.peek()!='n'); // Перевірка кінця рядка (файла) } // Кінець підпрограми void main() // Початок основної програми { int i; cout<<”n”; readlong(a); cout<<”n”; for (i=a[0]; i>=1; i--) // Вивід довгого числа на екран cout<<a[i]; cout<<”n”; }
  • 3. Додавання довгих чисел а=456789 в=8743 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] 6 9 8 7 6 5 4 0 b[0] b[1] b[2] b[3] b[4] b[5] b[6] b[7] 4 3 4 7 8 0 0 0 c[0] c[1] c[2] c[3] c[4] c[5] c[6] c[7] 0 0 0 0 0 0 0 0 6 9+3=12 0 0 0 0 0 0 6 2 1 0 0 0 0 0 6 2 8+4+1=13 0 0 0 0 0 6 2 3 1 0 0 0 0 6 2 3 7+7+1=15 0 0 0 0 6 2 3 5 1 0 0 0 6 2 3 5 6+8+1=15 0 0 0 6 2 3 5 5 1 0 0 6 2 3 5 5 5+0+1=6 0 0 6 2 3 5 5 6 4+0+0=4 0 6 2 3 5 5 6 4 0 Отже с=465532. Алгоритм додавання 1. Знаходимо в якому з чисел більше цифр і присвоюємо це число к (k=max(a[0],b[0]). 2. Додаємо a[1] i b[1]. 3. Число одиниць записуємо в c[1], а число десятків (1) переносимо в c[2], якщо a[1]+b[1]>9. 4. Починаючи з i=2 і до к знаходимо s=a[i]+b[i]+c[i]. Число одиниць знайденої суми записуємо в c[i]. Якщо s>9 то записуємо 1 в c[i+1]. 5. Якщо на к+1 позиції появилась 1, то збільшуємо кількість цифр в c[0] на 1.
  • 4. Програма на С++ #include<fstream.h> #include<iostream.h> #include<string.h> #include<stdlib.h> const md=1000, // Кількість цифр osn=10; // Основа числення (максимальна цифра osn-1) typedef int tlong[md]; // Опис типу довгого числа ifstream f("long1.txt"); tlong a,b,c; char ch; // Підпрограма для читання довгого числа void readlong(tlong a) { for (int i=0;i<1000;i++) a[i]=0; // Обнулення довгого числа а; do { f>>ch; // Зчитування числа з файла for (i=a[0];i>=1;i--) { a[i+1]=a[i]; // Переміщення всіх цифр на одну позицію вправо } a[1]=int(ch)-int('0'); a[0]++; } while (f.peek()!='n'); // Перевірка кінця рядка (файла) } // Кінець підпрограми void writelong(tlong a) { int i; cout<<"n"; for (i=a[0]; i>=1; i--) // Вивід довгого числа на екран cout<<a[i]; cout<<"n"; } void sumlong(tlong a, tlong b) { int k; for (int i=0;i<1000;i++) c[i]=0; if (a[0]>b[0]) k=a[0]; else k=b[0]; for ( i=1; i<=k; i++) { c[i+1]=(c[i]+a[i]+b[i])/osn;
  • 5. c[i]=(c[i]+a[i]+b[i])%osn; } if (c[k+1]==0) c[0]=k; else c[0]=++k; } void main() // Початок основної програми { readlong(a); readlong(b); sumlong(a,b); writelong(c); } Віднімання довгих чисел а=456201 в=8743 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] 6 1 0 2 6 5 4 0 b[0] b[1] b[2] b[3] b[4] b[5] b[6] b[7] 4 3 4 7 8 0 0 0 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] 6 1 0 2 6 5 4 0 6 1-3=-2 0 2 6 5 4 0 6 -2+10=8 0-1=-1 2 6 5 4 0 6 8 -1+10=9 2-1=1 6 5 4 0 6 8 9-4=5 1 6 5 4 0 6 8 5 1-7=-6 6 5 4 0 6 8 5 -6+10=4 6-1=5 5 4 0 6 8 5 4 5-8=-3 5 4 0 6 8 5 4 -3+10=7 5-1=4 4 0 6 8 5 4 7 4-0=4 4 0 6 8 5 4 7 4 4-0=4 0 6 8 5 4 7 4 4 0 Отже a-b=447458.
  • 6. Алгоритм віднімання 1. k=a[0]. 2. Для і від 1 до к: знаходимо a[i]=a[i]-b[i] . 3. Якщо a[i]<0, то позичаємо десяток в наступному розряді ( a[i]=a[i]+10; a[i+1]=a[i+1]-1;) . Якщо наступний розряд стає від’ємним, то позичаємо десяток в слідуючому розряді і т. д. поки є від’ємні числа. Шукана різниця буде в таблиці а. Програма на мові С++ #include<fstream.h> #include<iostream.h> #include<string.h> #include<stdlib.h> const md=1000, // Кількість цифр osn=10; // Основа числення (максимальна цифра osn-1) typedef int tlong[md]; // Опис типу довгого числа ifstream f("long1.txt"); tlong a,b,c; char ch; // Підпрограма для читання довгого числа void readlong(tlong a) { for (int i=0;i<1000;i++) a[i]=0; // Обнулення довгого числа а; do { f>>ch; // Зчитування числа з файла for (i=a[0];i>=1;i--) { a[i+1]=a[i]; // Переміщення всіх цифр на одну позицію вправо } a[1]=int(ch)-int('0'); a[0]++; } while (f.peek()!='n'); // Перевірка кінця рядка (файла) } // Кінець підпрограми void writelong(tlong a) { int i; cout<<"n"; for (i=a[0]; i>=1; i--) // Вивід довгого числа на екран cout<<a[i];
  • 7. cout<<"n"; } void sublong(tlong a, tlong b) { int i,j; for (i=1;i<=b[0];i++) { a[i]- =b[i]; j=i; while ((a[j]<0) && (j<=a[0])) // Позичання десятку { a[j]+=osn; a[j+1]--; j++; } } i=a[0]; while ((i>1)&&(a[i]==0)) i++; a[0]=i; // Перевірка кількості цифр } void main() // Початок основної програми { readlong(a); readlong(b); sublong(a,b); writelong(a); }