Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 1730 • Страница 15 из 87<  1 ... 12  13  14  15  16  17  18 ... 87  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 01.04.2005
Откуда: Москва-Лубянка
Faier
Код:
#include <conio>
clrscr();

_________________
AnossovPavel в проекте F@H (TSC!Russia)
退屈な祖父 ¤ παππούς ¤ («клан дедов»)



Партнер
 

Anoss
Мой MV S++ 6.0 не обнаруживает библиотечный файл #include <conio>.


 

Member
Статус: Не в сети
Регистрация: 01.04.2005
Откуда: Москва-Лубянка
Faier Злобный майкрософт не дает conio, надо же!))

Тогда мучайся так:

Код:
/* Standard error macro for reporting API errors */
 #define PERR(bSuccess, api){if(!(bSuccess)) printf("%s:Error %d from %s \
    on line %d\n", __FILE__, GetLastError(), api, __LINE__);}

 void cls( HANDLE hConsole )
 {
    COORD coordScreen = { 0, 0 };    /* here's where we'll home the
                                        cursor */
    BOOL bSuccess;
    DWORD cCharsWritten;
    CONSOLE_SCREEN_BUFFER_INFO csbi; /* to get buffer info */
    DWORD dwConSize;                 /* number of character cells in
                                        the current buffer */

    /* get the number of character cells in the current buffer */

    bSuccess = GetConsoleScreenBufferInfo( hConsole, &csbi );
    PERR( bSuccess, "GetConsoleScreenBufferInfo" );
    dwConSize = csbi.dwSize.X * csbi.dwSize.Y;

    /* fill the entire screen with blanks */

    bSuccess = FillConsoleOutputCharacter( hConsole, (TCHAR) ' ',
       dwConSize, coordScreen, &cCharsWritten );
    PERR( bSuccess, "FillConsoleOutputCharacter" );

    /* get the current text attribute */

    bSuccess = GetConsoleScreenBufferInfo( hConsole, &csbi );
    PERR( bSuccess, "ConsoleScreenBufferInfo" );

    /* now set the buffer's attributes accordingly */

    bSuccess = FillConsoleOutputAttribute( hConsole, csbi.wAttributes,
       dwConSize, coordScreen, &cCharsWritten );
    PERR( bSuccess, "FillConsoleOutputAttribute" );

    /* put the cursor at (0, 0) */

    bSuccess = SetConsoleCursorPosition( hConsole, coordScreen );
    PERR( bSuccess, "SetConsoleCursorPosition" );
    return;
 }

© MSDN
)))

_________________
AnossovPavel в проекте F@H (TSC!Russia)
退屈な祖父 ¤ παππούς ¤ («клан дедов»)


 

Member
Статус: Не в сети
Регистрация: 24.12.2005
conio.h, однако!


 

Билли Бонс
Я пробовал. В conio.h не этой функции, вроде.

Anoss
Спасибо.


 

Member
Статус: Не в сети
Регистрация: 09.08.2005
Откуда: Земля
Здравствуйте
Задали нам по Информатике написать прогу на Си.
Я её практически сделал, но не не знаю, как написать "нельзя делить на ноль" при вычислении f=(-x)/b+(-c)/x (Если х=0 или b=0)
[code]#include <stdio.h>
void main()
{
double a,b,c,x,f;
printf("Vvedite a");
scanf("%lf",&a);
printf("Vvedite b");
scanf("%lf",&b);
printf("Vvedite c");
scanf("%lf",&c);
printf("Vvedite x");
scanf("%lf",&x);
if (x<0.3 && a>c)
f=2*x-c-a+b;
if (x>0.3 && a<c)
f=(x-a)/(x-c);
else f=(-x)/b+(-c)/x;
printf("Funkcia F=%lf",f);
}


 

LiS95
Я это, не уверен, ибо С не знаю, но может попробовать через оператор if?


 

Member
Статус: Не в сети
Регистрация: 01.04.2005
Откуда: Москва-Лубянка
Faier Если ты си не знаешь, может, не стоит отвечать в этой ветке?)

LiS95

Код:
#include <stdio.h>
void main()
{
   double a=0,b=0,c=0,x=0,f=0;

   printf("Vvedite a");
   scanf("%lf",&a);

   printf("Vvedite b");
   scanf("%lf",&b);


   printf("Vvedite c");
   scanf("%lf",&c);

   printf("Vvedite x");
   scanf("%lf",&x);

   if (x<0.3 && a>c)
   {
      f=2*x-c-a+b;
   }
   else if (x>0.3 && a<c)
   {
      if(x==c)
      {
         printf("x=c, cannot divide by zero");
         return 1;
         /* что ты должен делать в этом случае, я не знаю. */
      }
      f=(x-a)/(x-c);
   }
   else
   {
      while(b == 0)
      {
         printf("cannot divide by zero, please input b again:");
         scanf("%lf",&b);
      }
      while(x == 0)
      {
         printf("cannot divide by zero, please input x again:");
         scanf("%lf",&b);
      }
      f=(-x)/b+(-c)/x;
   }

   printf("Funkcia F=%lf",f);
}

_________________
AnossovPavel в проекте F@H (TSC!Russia)
退屈な祖父 ¤ παππούς ¤ («клан дедов»)


 

Anoss
Я С++ изучаю. Ясно?

Вот он как раз и помог, без наездов пожалуйста. Daemon

Ага.


 

Member
Статус: Не в сети
Регистрация: 09.08.2005
Откуда: Земля
Я тут прикинул вариант решения через if:
Код:
#include <stdio.h>
void main()
{
double a,b,c,x,f;
printf("Vvedite a");
scanf("%lf",&a);
printf("Vvedite b");
scanf("%lf",&b);
printf("Vvedite c");
scanf("%lf",&c);
printf("Vvedite x");
scanf("%lf",&x);
if (b==0 || x==0 )
printf("Delit na nuli neliza");
else
{
if (x<0.3 && a>c)
   f=2*x-c-a+b;
if (x>0.3 && a<c)
   f=(x-a)/(x-c);
else f=(-x)/b+(-c)/x;
printf("Funkcia F=%lf",f);
}
}

Прога работает, но как вставить if (b==0 || x==0 )
printf("Delit na nuli neliza");
В сторочку с третьим условием(f=(-x)/b+(-c)/x), а то оно выполняется
для всей системы?
P.S. Если в (b==0 || x==0) поставить вместо || && то компилятор выдаёт ошибку: Runtime error occured


 

Member
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
Код:
else if (!((b==0) || (x==0)))
{
   f=(-x)/b+(-c)/x;
}
else printf("Деление на 0");


это если только к 3-му, но во втором тоже может возникнуть исключение, когда x=c. Так что вариант, который предложил Anoss все попытки поделить на 0 вылавливает. Чем он собственно не устраивает?

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Member
Статус: Не в сети
Регистрация: 31.08.2005
Откуда: Мир
здраствуйте, надо бы Разработать и отладить С-программу, которая определяет размер заданного файла (Int 21h, AH=23h). используя прерывания. ктото в курсе как это сделать?

_________________
Loading...


 

Member
Статус: Не в сети
Регистрация: 30.01.2006
Откуда: Минск
pretorian а подробного описания этого прерывания нет? А то никогда не сталкивался. Сама структура программы такова:
Код:
#include <stdio.h>
#include <conio.h>
#include <dos.h>
void main()
{ char s[50];
  printf("Enter name of file:");
  gets(s);
  /*здесь должна быть установка регистров, возможно указатель на имя файла или дескриптор файла, возможно понадобятся дополнительные прерывания. Все зависит от требуемых входных параметров для 23h функции 21h прерывания.*/
  _AH=0x23;
  geninterrupt(0x21);
  //здесь будет вывод значения регистров, в которые помещается размер
  getch();
}

пробовал в DS:DX устанавливать адрес строки s-не получается.


 

Member
Статус: Не в сети
Регистрация: 01.04.2005
Откуда: Москва-Лубянка
В DS:DX должен быть адрес таблицы FCB, заполненной следующим образом:

Код:
смещение    описание

00H         !! ID диска (1 — A:...)
01H - 08H   !! Имя файла (8 символов, до 8 добить пробелами)
09H - 0BH   !! Расширение (3 символа, до 3 добить пробелами)
0CH - 0DH   номер блока
0EH - 10H   !! Размер записи — если хотим получить размер файла в байтах, то тут единичка
10H - 13H   размер файла
14H - 15H   дата создания
16H - 17H    
16H - 17H   время создания
18H - 1FH
20H         номер записи
21H - 25H   !! (относительный номер записи) — ТУТ будет результат, размер файла, измеренный в числе записей, т.е. размер файла в байтах, деленный на размер записи и округленный вверх..

после вызова прерывания в поле «относительный номер записи» будет размер файла, а в AL — 0 в случае успеха или FF в случае провала) Уф)

_________________
AnossovPavel в проекте F@H (TSC!Russia)
退屈な祖父 ¤ παππούς ¤ («клан дедов»)


 

Member
Статус: Не в сети
Регистрация: 31.08.2005
Откуда: Мир
Спасибо)

_________________
Loading...


 

Member
Статус: Не в сети
Регистрация: 30.01.2006
Откуда: Минск
Задам и я вопрос. Лаба у меня- игра в крестики-нолики. В принципе я её написал, только нормальный ИИ написать не получается. У меня он построен на простом рекурсивном переборе вариантов до определённой глубины. Проблема в том, что уже при глубине 6 ходов на поле 6x6 ждать ответа весьма долго. А на глубине 4 играет он весьма примитивно(уровень normal).Возможно, у кого-нибудь будут другие предложения по реализации ИИ? Заодно, кто желает, может на глюки прогу проверить.
Предупреждаю! Больше 5 на hard и 3 на very hard лучше не вводить-ответа вряд ли дождётесь :). Буквы вместо чисел-тоже не надо.
Сама прога здесь
Компилятор-BC 3.0.


 

Member
Статус: Не в сети
Регистрация: 24.12.2005
Ну конечно, будет тормозить. Полный перебор - это ж экспоненциальный рост количества вариантов (6 ходов ~ 36^6 = 2176782336 вариантов)... :) Придумай эвристику какую-нибудь, которая будет отсеивать явно не нужные ходы.


 

Member
Статус: Не в сети
Регистрация: 12.12.2003
Откуда: Уфа
Такой вопрос, создаю класс, членом этого класса должен быть динамический двумерный массив. То есть я объявляю класс, на этом этапе я еще не знаю размеры массива, они должны определятся в ходе работы одной из функций. Как это реализовать? С помощью vector<vector<int>> matrix? Желателен вариант с наибольшим быстродействием..


 

Member
Статус: Не в сети
Регистрация: 24.12.2005
vector - это управляемый аналог обычного массива C, так что проблем с быстродействием при доступе к элементам быть не должно. Разве что при изменении размеров, поэтому лучше один раз, когда будет известен размер, зарезервировать место и не менять его.
Добавлено спустя 1 минуту, 7 секунд
А ещё есть valarray, который рекомендует сам Страуструп. :)


 

Member
Статус: Не в сети
Регистрация: 12.12.2003
Откуда: Уфа
Билли Бонс
а по подробнее можно? Когда я объявляю в классе массив, мне же еще неизвестны его размеры, то есть я не могу в классе объявить int [num_x][num_y]? num_x и num_y Я узнаю только при выполнении какой-либо функции класса.


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 1730 • Страница 15 из 87<  1 ... 12  13  14  15  16  17  18 ... 87  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan