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




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 1730 • Страница 54 из 87<  1 ... 51  52  53  54  55  56  57 ... 87  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 11.01.2009
Дайте ссылку, где подробно описан графический режим Си. Разные функции, чтобы меню делать, курсоры. Чтобы в меню можно было вставить картинку свою.... И нажимая стрелки передвигать ее по экрану... Искал в поисковике по граф. режим... но так и не нашел....



Партнер
 

Advanced member
Статус: Не в сети
Регистрация: 30.08.2003
Откуда: Санкт-Петербург
tolikrog
в Cи нет графического режима. Эти функции реализуются сторонними библиотеками. Иногда включенными в состав среды разработки. Поэтому уточните - под какую среду собираетесь программировать. Тогда можно на вопрос ответить.
Цитата:
Искал в поисковике по граф. режим... но так и не нашел....

Если под вынь, то тогда скорее копать в сторону OWL/MFC/Win32API/MSDN...

_________________
{:€ дед в законе :-) нородный окодемег
почетный пользователь OpenSuSE 11.3
Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad


 

Member
Статус: Не в сети
Регистрация: 11.01.2009
Мне тогда надо, ссылку на сайт, где подробно описаны графические средства Turbo C.
Мне надо создать игру под ДОС, чтобы там было меню, свои картинки.


 

Junior
Статус: Не в сети
Регистрация: 22.06.2009
Боюсь что под DOS картинки придется "рисовать" самому. Либо писать графический 128-битный просмотрщик картинок. :D


 

Member
Статус: Не в сети
Регистрация: 08.05.2006
Откуда: СПБ
tolikrog
если игру,то в borland 3.11 есть библиотека grafiks.h(помоему так)
при помощи нее можно рисовать,цветов всего 16,но в инете где-то валялся драйвер с 1024 цветами

_________________
Мы все знаем, что Linux — это круто… он выполняет бесконечные циклы за 5 секунд.
* Линус Торвальдс


 

Member
Статус: Не в сети
Регистрация: 11.01.2009
Да, картинки сам нарисую, ну, а как меню сделать? Наподобие как в Нортон Командере, чтобы прокручивать стрелками.
Еще раз прошу, если знаете сайт, где это подробно описано, то дайте ссылку на этот сайт.


 

Member
Статус: Не в сети
Регистрация: 08.05.2006
Откуда: СПБ
tolikrog
вот рисуешь картинку и думаешь как сделать кнопочки)

_________________
Мы все знаем, что Linux — это круто… он выполняет бесконечные циклы за 5 секунд.
* Линус Торвальдс


 

Member
Статус: Не в сети
Регистрация: 10.12.2007
Откуда: Санкт-Петербург
Всем привет. Имеется одна программка, которую портит 1 момент. К примеру, есть введенное слово "раковина". А также есть слово "дом". В словаре они бы располагались "дом" и "раковина". Вот из этих двух слов нужно вывести дом, так как он стоит выше исходного, те раковины. Слова конечно произвольные, это так, для примера. Подскажите, пожалуйста, как это сделать( просто общую идею, код я и так напишу).

_________________
Семь бед, один Reset. 95, 98 - это количество багов. В пpоцентах...
DCN - наше все


 

Advanced member
Статус: Не в сети
Регистрация: 30.08.2003
Откуда: Санкт-Петербург
manya
общая идея - связать все слова в виде иерархического дерева (т.е. "дом" - элемент нулевого уровня, "ванная", "гостиная" - "дети" элемента "дом", "раковина" - потомок "ванной").
Если требуются более сложные связи, то это будет не дерево, а клубок какой-то :-)...
Хранить в памяти можно в виде списка вида:
N элемента - описание элемента - ссылка на родительский элемент.
Работать будет не очень быстро, но конструкция жизнеспособная.
Просто соориентируйтесь какие взаимосвязи Вы хотите иметь - плясать отсюда. Плюс теорию БД неплохо посмотреть (отношения один-к-одному, один-к-многим... индексы, виды и пр.).

_________________
{:€ дед в законе :-) нородный окодемег
почетный пользователь OpenSuSE 11.3
Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad


 

Member
Статус: Не в сети
Регистрация: 10.12.2007
Откуда: Санкт-Петербург
простите за беспокойство, но вот тут проблема( прога удаляет те слова, которые лексиграфически меньше введенного)
некорректно выводит первое слово
Добавлено спустя 4 минуты 28 секунд:

Добавлено спустя 1 час 51 минуту 24 секунды:
Код:
#include <stdio.h>
#define N 100
int word[N];
int phrase[N];
void main(void)
{
   int c=0;
   int i=0;
   int count=0;
   printf("Input word:   ");
   while((c=getchar()) !='\n')
   {
      word[i]=c;
      i++;
   }
   printf("Input phrase. The end of the phrase must '0'   ");
   c=0;
   i=0;
   //getchar();
   while((c=getchar()) !='0')
   {
      if(c!=' ' && c!=',' && c!='0')
      {
         phrase[i]=c;
         i++;
      }
      else
      {
         int u=0;
         bool flag = true;
         for (u=0;u<=i;u++)
         {
            if(word[u]<phrase[u])
            {
               flag = false;
               break;
            }
            if(word[u]>phrase[u])
            {
               flag = true;
               break;
            }
            
         }
         if (flag)
         {
            count++;
            for (u=0;u<=i;u++)
            {
               putchar(phrase[u]);
               phrase[u]=0;
            }
         }

         printf("\n");
         i=0;
      }
   }
   if (count==0)
   {
      printf("There are no such words\n");
   }
}
Так будет правильнее, но она все равно работает не всегода :bandhead: :bandhead: :bandhead: :bandhead:

_________________
Семь бед, один Reset. 95, 98 - это количество багов. В пpоцентах...
DCN - наше все


 

Advanced member
Статус: Не в сети
Регистрация: 30.08.2003
Откуда: Санкт-Петербург
manya
это не программа, а ужОс какой-то.
1) не int word[N], а char word[N]. Мы же работаем с символами
2) строчки должны оканчиваться символом с кодом, иначе Вы так и не узнаете, где конец. Ну, и Сишные функции по умолчанию считают, что все именно так. Иначе могут залезть в чужую память. Так что если сами создаете строчку - не забываем ставить в конце нуль-терминатор.
3) вместо глобальных строк фиксированной длины можно перейти на указатели на строчки с динамическим выделением памяти - Вы же не уверены, что Вам всегда хватит 100 символов? :-)
4) учитывая, что логика программы получается смазанная - нарисуйте блок-схему или напишите алгоритм на бумаге (просто в виде неких фраз 'сделать то-то'). Потом уже реализуйте. Так, например, я бы разнес функции ввода данных и функции обработки данных. В конец - сунуть вывод отчета о выполнении (окончательная строчка, количество слов, ну, и т.д.)
5) см.п.4, если хотите, чтобы другие поняли, ЧТО должна делать Ваша программа
6) см. стандартную библиотеку Си. В частности, раздел про строковые функции - там есть и сравнение, и поиск подстроки и многое другое.

_________________
{:€ дед в законе :-) нородный окодемег
почетный пользователь OpenSuSE 11.3
Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad


 

Member
Статус: Не в сети
Регистрация: 10.12.2007
Откуда: Санкт-Петербург
Нам нельзя использовать строки, а только массивы :weep: . В данном случае можно же записывать в int, там будут просто коды символов. 100 мне точно хватит, это оговорено условием задачи( и динамическую память нам тоже пока нельзя) ;) . Ну а насчет логики полностью соглашусь)))) А строкуа у меня ограничена 0, а введенное слово enterом

_________________
Семь бед, один Reset. 95, 98 - это количество багов. В пpоцентах...
DCN - наше все


 

Заблокирован
Заблокирован
Статус: Не в сети
Регистрация: 23.01.2005
Откуда: с Марса
manya
Во-первых, нет ни единого комментария , какая команда за что отвечает...
Во-вотрых, прежде что либо делать , нужно это расписать на бумаге , немного поразмышлять , составить в виде стрелок и кружков (if, else if , else).
/*Проблема быстро решится.*/

Добавлено спустя 6 минут 35 секунд:
Цитата:
#include <stdio.h>
#define N 100
int word[N];
int phrase[N];
void main(void)
{
int c=0;
int i=0;
int count=0;
printf("Input word: ");

Нафиг такой фигней заниматся ??? Неужели нельзя проще ?

#include<stdio.h>

main()
{
int n = 100 , c = 0 , i = 0 , count = 0;
char word[n] , phrase[n] ;

Добавлено спустя 2 минуты 3 секунды:
И вообще пользуйся Code::Blocks , весч !

_________________
Монитор никак у всех, у меня на IPS.
Пpошьешь и бедное железо на совсем убьешь ! Не уверен , не прошивай !
Пниха Виста
Колбоса
КГ / АМ


 

Member
Статус: Не в сети
Регистрация: 08.05.2006
Откуда: СПБ
manya писал(а):
Нам нельзя использовать строки, а только массивы

строка и есть массив

_________________
Мы все знаем, что Linux — это круто… он выполняет бесконечные циклы за 5 секунд.
* Линус Торвальдс


 

Member
Статус: Не в сети
Регистрация: 10.12.2007
Откуда: Санкт-Петербург
в смысле не массив char, а int
Кстати, всем спасибо, прога уже мною написана и сдана. :D

_________________
Семь бед, один Reset. 95, 98 - это количество багов. В пpоцентах...
DCN - наше все


 

Заблокирован
Заблокирован
Статус: Не в сети
Регистрация: 23.01.2005
Откуда: с Марса
manya
Буквы ака символы, ты не можешь сохронять в таблицах типа инт , инт только для цифр (без запятых).
А вот char , можно сохронять (не знаю как лутше скзать) символы , тоесть цифры , буквы, запятые , точки всё что является символом (не в счет исключения).

_________________
Монитор никак у всех, у меня на IPS.
Пpошьешь и бедное железо на совсем убьешь ! Не уверен , не прошивай !
Пниха Виста
Колбоса
КГ / АМ


 

Advanced member
Статус: Не в сети
Регистрация: 30.08.2003
Откуда: Санкт-Петербург
BiC
круто объяснили! Я ничего не понял.
Вообще-то символы МОЖНО сохранять в массивах int. Правда, это плохо по другим причинам. Например, по той, что ф-ции работы со строками начнут глючить при передаче им не char*.
В рамках компьютера символы записываются не как символы, а как их коды, т.е как числа. Т.к. в компьютере используется таблица ASCII, то символ = 1 байт. А Unicode - 2хбайтовый... Просто в Си нет отдельного однобайтного целочисленного типа кроме char :-).
То, что Вы имели в виду - в массиве int нельзя сохранять данные в формате с плавающей точкой - соглашусь. Так делать не стоит. Но делать так можно, когда понимаешь, что делаешь...

_________________
{:€ дед в законе :-) нородный окодемег
почетный пользователь OpenSuSE 11.3
Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad


 

Member
Статус: Не в сети
Регистрация: 10.12.2007
Откуда: Санкт-Петербург
Понятно, спасибо :-)

_________________
Семь бед, один Reset. 95, 98 - это количество багов. В пpоцентах...
DCN - наше все


 

Заблокирован
Заблокирован
Статус: Не в сети
Регистрация: 23.01.2005
Откуда: с Марса
Ой, не городи огород с уникодом , мы говорим о type (int , char) и для чего они предназначены.
Не ты создал этот язык , значит должен делать так как полагается.

Если заниматся буквами и цифрами то:

int цифры без запятой
float с запятой
char буквы, а так же можно цифры + запятые , точки


, у C нет string поетому нужно использовать char таблицу.

_________________
Монитор никак у всех, у меня на IPS.
Пpошьешь и бедное железо на совсем убьешь ! Не уверен , не прошивай !
Пниха Виста
Колбоса
КГ / АМ


 

Advanced member
Статус: Не в сети
Регистрация: 30.08.2003
Откуда: Санкт-Петербург
BiC
Цитата:
int цифры без запятой
float с запятой
char буквы, а так же можно цифры + запятые , точки

товарищ, с таким уровнем познания языка в этой ветке делать нечего. :-x
Цитата:
таблицу.

не таблицу, а массив.
Цитата:
char буквы, а так же можно цифры + запятые , точки

еще раз (для непонятливых). В Си есть три целочисленных типа: char (1-байтовое), [short] int (2-хбайтовое), long int (4-хбайтовое). Про числа с плавающей точкой речи пока нет.
То что символьные данные удобнее хранить в char'ах - очевидно. Но то что int x = 'c'; char c = 'c'; помещает в x и c одно и то же значение (кода символа c) должно быть понятно.
Си тем и удобен - что он достаточно высок (не надо писать конкретных ассемблерных инструкций) и тем, что он достаточно низок (можно с очень хорошей степенью достоверности предсказывать как преобразуются инструкции в машинные коды и как хранятся данные)

_________________
{:€ дед в законе :-) нородный окодемег
почетный пользователь OpenSuSE 11.3
Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 1730 • Страница 54 из 87<  1 ... 51  52  53  54  55  56  57 ... 87  >
-

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


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

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


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

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