Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 [2]  Все   Вниз
  Печать  
Автор Тема: помогите написать программу  (Прочитано 44091 раз)
0 Пользователей и 4 Гостей смотрят эту тему.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #30 : 26-09-2005 09:44 » 

да нет, не обнаглевшая, вполне вежливая девушка Улыбаюсь

я не на борланде пишу, поэтому готовое дасть не могу. Но - что тут делать-то?
Бери любую твою уже готовую программу и копируй туда (только не пойму точно - что надо - и что за заголовочные файлы ты привела? зачем они?)

формулировка вопросов (в 4-м отсюда посте вверх) - непонятна
Записан

Carrie Bradshaw
Гость
« Ответ #31 : 26-09-2005 09:56 » 

я и сама не очень вообще поняла, что делать-то. просто мне сказали. а то, что сказали я и говорю вам - максимальную беззнаковую длинную константу надо на экран вывести...
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #32 : 26-09-2005 10:06 » 

повторяю, точно не помогу, надо тех, кто пользуется борландом - я не знаю как там у вас на экран выводите, но думаю должно быть что-то вроде:

(максимальный unsigned long )

#include <iostream>
int main(void)
{
   unsigned long uL=0;
   uL--;
   //как распечатать - не знаю Улыбаюсь , что-то вроде
   cout << uL;

   return 0;
}
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #33 : 26-09-2005 10:21 » 

а насчёт степени двойки ...

> максимальную степень, в которую можно возвести 2?

 ну скажем тебе нуна определить, сколько степеней двойки влезет в unsigned long.

//////////////////
count = sizeof(unsigned long)*8; //считаем количество бит в unsigned long
count -=2;
//count - количество степеней, в которую можно возвести 2, не получив переполнения
Записан

Carrie Bradshaw
Гость
« Ответ #34 : 27-09-2005 08:06 » 

сэнкс  Отлично а распечатывать на Борланде - printf
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #35 : 27-09-2005 08:14 » 

всегда рады помочь Улыбаюсь
Записан

Hamster
Гость
« Ответ #36 : 09-11-2005 07:34 » 

Мужики помогите уже второй день сижу не могу придумать ничего...  Молчу

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

Цитата
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main()
{
   int n,m,z;
   float a;

   printf("\ninput n/m\t");
   scanf ("%d/%d",&n,&m);
   while (n%2==0 & m%2==0)
   {
   n/=2;
   m/=2;
   }
   while (n%3==0 & m%3==0)
   {
   n/=3;
   m/=3;
   }
   while(n%m==0 || m%n==0)
   {
   if (n>m) {
       z=fabs(m);
       m/=z;
       n/=z;
       }
   else   {
          z=fabs(n);
          m/=z;
          n/=z;
          }
   }
   printf("sokrashenna9I drob %d/%d\n",n,m);
   getch();
}

проблема в следующем
в условии последнего цикла нужно чтобы условие удовлетворяло дроби такой как 121/11 или 13/39.
заранее спасибо.
Записан
Alf
Гость
« Ответ #37 : 09-11-2005 07:51 » 

Hamster, чтобы сократить дробь, тебе нужно найти наибольший общий делитель (НОД) числителя и знаменателя. Конечно, можно в цикле перебирать все возможные делители, но это неэффективно при больших числах.

Есть более быстрый алгоритм Евклида, очень простой. Думаю, разберешься в момент. Если что непонятно, спрашивай.
Записан
Hamster
Гость
« Ответ #38 : 09-11-2005 08:41 » new

Вот что насидел...

Цитата
#include <stdio.h>

int gcd(int x, int y);

int main() {
    int x, y, d;
    printf("vvedite drob:\n");
    scanf("%d%d", &x, &y);
    d = gcd(x, y);
    printf("NOD %d/%d\n",d);
    return 0;
}

int gcd(int x, int y) {
    while (y != 0) {
        int r = x % y; 
        x = y;         
   y = r;
    }

    return x;   
  }

Теперь не могу элементарного сократить дробь...
« Последнее редактирование: 09-11-2005 08:42 от Hamster » Записан
Alf
Гость
« Ответ #39 : 09-11-2005 08:49 » 

Если у тебя есть НОД числителя и знаменателя, просто подели на него числитель и знаменатель - и все.
Записан
Страниц: 1 [2]  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines