Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.08.2016, 05:24   #41
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,509
По умолчанию

Арифметика длинных целых чисел.

Дано:
9 500 000 000 000 000 000 000 000
1 983 000 000 000 000 000 000 000 000 000 000
Перемножить.

Вот что выдаёт программа:
9 500 000 000 000 000 000 000 000
1 983 000 000 000 000 000 000 000 000 000 000
18 838 500 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000

Код:
/*	p8
Язык Turbo C 2.0
Арифметика длинных чисел   */
#include <conio.h>
#include <stdio.h> 
main ()
{
   int a [100], b, c;
   int d [100], e, f;
   int g [100], h, i;
   /*   число; число значащих цифр; число нулей   */

   int j, k;

   /*   начальные данные   */
   for (j = 0; j < 100; j++)  a [j] = d [j] = g [j] = 0;
   a [0] = 9; a [1] = 5; b = 2; c = 23;
   d [0] = 1; d [1] = 9; d [2] = 8; d [3] = 3; e = 4; f = 30;

   /*   печатаем первое число   */
   for (j = 0; j < b + c; j++)
   {
      printf ("%i", a [j]);
      k = b + c - j - 1;
      if (k % 3 == 0  &&  k)  printf (" ");
   }

   /*   печатаем второе число   */
   printf ("\n");
   for (j = 0; j < e + f; j++)
   {
      printf ("%i", d [j]);
      k = e + f - j - 1;
      if (k % 3 == 0  &&  k)  printf (" ");
   }

 
   /*   перемножаем числа   */
   for (j = 0; j < b; j++)
     for (k = 0; k < e; k++)
	g [j + k + 1] += a [j] * d [k];

   h = b + e;
   i = c + f;
   /*   складываем десятки с единицами из соседних разрядов   */
   for (j = h - 1; j; j--)
   {
      g [j - 1] = g [j - 1] + g [j] / 10;
      g [j] = g [j] % 10;
   }

   /*   проверяем, является ли первая цифра значащей или нет   */
   if (g [0] == 0)
   {
      for (j = 0; j < h - 1; j++)  g [j] = g [j + 1];
      g [h - 1] = 0;
      h--;
   }

   /*   печатаем третье число   */
   printf ("\n");
   for (j = 0; j < h + i; j++)
   {
      printf ("%i", g [j]);
      k = h + i - j - 1;
      if (k % 3 == 0  &&  k)  printf (" ");
   }

   printf ("\n");
   getch ();
   printf ("\n");
}
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/
В ожидании Кеши...
jura_k на форуме Ответить с цитированием
Старый 23.08.2016, 07:13   #42
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,964
По умолчанию

Цитата:
Сообщение от jura_k Посмотреть сообщение
Блок-схемы мы немножко проходили в старших классах на Бэйсике. Но они всегда казались мне чем-то ненужным. Я быстро от них ушёл. Все алгоритмы представлял в уме.
О чём вы говорите, я знаю. У меня и учебник есть, где блок-схемы объясняются, но с какой стати мне это надо?
Блок-схемы не панацея. Я тоже не всегда их использую. Но бывают случаи, когда без них просто не обойтись. Например в вычислениях, где очень много ветвлений. Блок-схемы я составляю не для всей программы, а только для критических участков.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 28.08.2016, 08:21   #43
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,509
По умолчанию

Всё то же самое, но другим макаром.

Код:
/*   p9
     Язык Turbo C
     Арифметика длинных целых чисел   */

#include <conio.h>
#include <stdio.h>

int aa [100], ab, ac;
int ba [100], bb, bc;
int ca [100], cb, cc;

da ();   /*   печать первого числа   */
db ();   /*   печать второго числа   */
dc ();   /*   печать третьего числа   */

dd ();   /*   ca = aa * ba   */


main ()
{
   int a;

   for (a = 0; a < 100; a++)  aa [a] = ba [a] = ca [a] = 0;
   aa [0] = 9; aa [1] = 5; ab = 2; ac = 23;
   ba [0] = 1; ba [1] = 9; ba [2] = 8; ba [3] = 3; bb = 4; bc = 30;

   dd ();
   da ();
   db ();
   dc ();

   getch ();
   printf ("\n");
}


da ()
{
   int a, b;

   for (a = 0; a < ab + ac; a++)
   {
      printf ("%i", aa [a]);
      b = ab + ac - a - 1;
      if (b % 3 == 0  &&  b)  printf (" ");
   }

   printf ("\n");
}

db ()
{
   int a, b;

   for (a = 0; a < bb + bc; a++)
   {
      printf ("%i", ba [a]);
      b = bb + bc - a - 1;
      if (b % 3 == 0  &&  b)  printf (" ");
   }

   printf ("\n");
}

dc ()
{
   int a, b;

   for (a = 0; a < cb + cc; a++)
   {
      printf ("%i", ca [a]);
      b = cb + cc - a - 1;
      if (b % 3 == 0  &&  b)  printf (" ");
   }

   printf ("\n");
}


dd ()
{
   int a, b;

   for (a = 0; a < ab; a++)
      for (b = 0; b < bb; b++)
	 ca [a + b + 1] += aa [a] * ba [b];

   cb = ab + bb;
   cc = ac + bc;
   for (a = cb - 1; a; a--)
   {
      ca [a - 1] = ca [a - 1] + ca [a] / 10;
      ca [a] = ca [a] % 10;
   }

   if (ca [0] == 0)
   {
      for (a = 0; a < cb - 1; a++)  ca [a] = ca [a + 1];
      ca [cb - 1] = 0;
      cb--;
   }
}
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/
В ожидании Кеши...
jura_k на форуме Ответить с цитированием
Старый 03.12.2016, 13:07   #44
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,509
По умолчанию

Будни программиста



мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/
В ожидании Кеши...
jura_k на форуме Ответить с цитированием
Старый 03.12.2016, 17:50   #45
olej.tsil
Заблокирован
 
Регистрация: 29.11.2016
Сообщений: 215
По умолчанию

Цитата:
Сообщение от jura_k Посмотреть сообщение
Будни программиста



Я бы не называл это "будни программиста".
Я бы назвал это (как и всю тему на 3 страницы): будни анониста.

1. книга по языку C для вас есть только одна:
Цитата:
Брайн Керниган, Денис Ритчи
Язык программирования Си


2. изучать (на практике) программирование на языке C можно исключительно и только в операционной системе Linux, которая сама и вся написана на C, ... и для чего, собственно, язык C только и изобретался - написание UNIX-подобных операционных систем.

3. все остальные упражнения и разговоры о C - это ... вот то слово, которое выше написано, ... в буднях
olej.tsil вне форума Ответить с цитированием
Старый 03.12.2016, 19:11   #46
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Ну, набросились!
У человека свое особое хобби, сродни собиранию антиквариата.
Так что я ставлю зачет за неформальный подход.

//зы
И вообще, почему участники позволяют себе оскорбления? Кстати, слово "онанизм" пишется так.

Последний раз редактировалось EUGY; 03.12.2016 в 19:28.
EUGY вне форума Ответить с цитированием
Старый 03.12.2016, 19:14   #47
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,509
По умолчанию

Монитор, кстати, вчера поставил... 19". Предыдущий испортился - 17".
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/
В ожидании Кеши...
jura_k на форуме Ответить с цитированием
Старый 03.12.2016, 19:50   #48
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,509
По умолчанию

К новому стыдно приступать... Не могу закончить старое... Я уже читал книги для программистов и понял: программирование как наука мне не нравится. Не принимаю я это.
Сам не могу объяснить свою упёртость. Разве что оригинальность.

Касательно этого фото меня интересует вопрос. А я смогу досчитать до ста??? Вопрос в шутку, конечно... но какой-то смысл есть.
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/
В ожидании Кеши...
jura_k на форуме Ответить с цитированием
Старый 03.12.2016, 20:02   #49
olej.tsil
Заблокирован
 
Регистрация: 29.11.2016
Сообщений: 215
По умолчанию

Цитата:
Сообщение от jura_k Посмотреть сообщение
и понял: программирование как наука мне не нравится.
Ну и к чему тогда весь этот цирк и вся эта тема?
olej.tsil вне форума Ответить с цитированием
Старый 04.12.2016, 06:42   #50
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,509
По умолчанию

Ну вот представьте, что вы пианист, а учиться лень. Более того: на дух не перевариваете официальную теорию. Примерно такая же ситуация. Всё, что я делаю - пытаюсь прочитать хоть какую-то книгу.

Конкретно вот эту книгу - "Основы программирования" - я уже прочитал один раз лет 13 назад...
Но только сейчас, когда взял в руки ещё раз, понял, какая же ерунда там написана, и что её просто невозможно читать.
К тому же там Паскаль. (Непереводимый чукотский акцент.)
Вот и начинаю каждый раз с начала - потому что не получается.

Добавлено: одна только подборка задач чего стоит. Иди туда! Иди сюда! А теперь вот так. А теперь вот этак.
Цирк, а не задачник.
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/
В ожидании Кеши...

Последний раз редактировалось jura_k; 04.12.2016 в 06:45.
jura_k на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C под DOS jura_k Общие вопросы C/C++ 26 01.08.2015 09:03
Из Dos под Win Nozema Фриланс 3 30.10.2009 17:34
C++ под DOS. Функции Xeon332 Общие вопросы C/C++ 34 29.11.2008 18:01
borland C++под DOS Xeon332 Помощь студентам 9 20.09.2008 20:50