Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: gcc и conio.h  (Прочитано 13032 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн slaviart

  • Автор темы
  • Участник
  • *
  • Сообщений: 101
    • Просмотр профиля
gcc и conio.h
« : 16 Января 2009, 02:36:38 »
Пишет что не может найти заголовочный файл , но мне нужен он для функции getch()  :-\ . Что делать?

lab2.c:4:19: ошибка: conio.h: No such file or directory
Писать о том что это он не является стандартом ISO C не надо , я и так знаю , лучше подскажите как мне сделать так что бы добавить этот заголовчоный файл

Оффлайн Kwah

  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: gcc и conio.h
« Ответ #1 : 16 Января 2009, 02:53:03 »
Написать getch самому, либо найти на форуме - уже давали такому же страждущему.

Знать о нестандартности чего-то мало, нужно этим не пользоваться.

Оффлайн axe

  • Старожил
  • *
  • Сообщений: 1203
    • Просмотр профиля

Оффлайн slaviart

  • Автор темы
  • Участник
  • *
  • Сообщений: 101
    • Просмотр профиля
Re: gcc и conio.h
« Ответ #3 : 16 Января 2009, 04:17:19 »
Мм проблемка еще одна возникла.

Код ошибки :

slaviart@slaviart-desktop:~/ProjectC/lab3$ sudo gcc lab3.c -o lab3
/tmp/ccOOZM5K.o: In function `y':
lab3.c:(.text+0xf2): undefined reference to `sin'
lab3.c:(.text+0x104): undefined reference to `pow'
collect2: выполнение ld завершилось с кодом возврата 1

Код программы:
#include <stdio.h>
#include <math.h>

#define a 0.6
#define b 1.5
#define p 0.3

float y(float);

int main(){
float x_begin,x_end,h,count;
printf("Введите начальное значение интервала");
scanf("%f",&x_begin);
printf("Введите конечное значение интервала");
scanf("%f",&x_end);
printf("Введите количество отрезков на интервале");
scanf("%f",&count);
h = (x_end-x_begin)/h;
while(x_begin != x_end) {
printf("+ %5.5f+ %5.5f+\n",&x_begin,y(x_begin));
x_begin+=h;
}
}

float y(float x){
return pow(sin(a*x*x+b*x+p),3)/(a-x);
}
« Последнее редактирование: 16 Января 2009, 04:53:15 от slaviart »

Оффлайн Kwah

  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: gcc и conio.h
« Ответ #4 : 16 Января 2009, 08:06:04 »
Какие библиотеки линковать дополнительно компилятор должен магическим образом догадаться? libm (gcc -lm)

Дополнительно:
Нет проверок деления на ноль (sic!), нет проверок входных данных, количество, хранимое во float-е - красиво, тупое сравнение на равенство в while... В общем, можно понаполучать очень интересных результатов.

ЗЫ. Учись, наконец, пользоваться поисковиками.

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: gcc и conio.h
« Ответ #5 : 16 Января 2009, 09:17:29 »
Пишет что не может найти заголовочный файл , но мне нужен он для функции getch()  :-\ . Что делать?

lab2.c:4:19: ошибка: conio.h: No such file or directory
Писать о том что это он не является стандартом ISO C не надо , я и так знаю , лучше подскажите как мне сделать так что бы добавить этот заголовчоный файл
а заголовочные файлы dos.h и bios.h тебе добавить?

P.S. поставь себе dosbox msdos и Turbo C++ и пользуйся наздоровье и никому не надо будет задавть вопросов и "преподы-идиоты" счастливы.
« Последнее редактирование: 16 Января 2009, 09:19:43 от Yurror »

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: gcc и conio.h
« Ответ #6 : 16 Января 2009, 10:59:50 »
Плюс, невероятно мощная команда
sudo gcc

А что, GCC без прав суперюзера не компилирует?

И еще ошибка в коде:

h = (x_end-x_begin)/h;Вероятно, там не на h деление, а на count.
« Последнее редактирование: 16 Января 2009, 11:02:42 от wl »
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн slaviart

  • Автор темы
  • Участник
  • *
  • Сообщений: 101
    • Просмотр профиля
Re: gcc и conio.h
« Ответ #7 : 16 Января 2009, 11:02:56 »
Плюс, невероятно мощная команда
sudo gcc

А что, GCC без прав суперюзера не компилирует?

И еще ошибка в коде:

h = (x_end-x_begin)/h;Вероятно, там не на h деление, а на count.
файл был создан под рутом

Оффлайн slaviart

  • Автор темы
  • Участник
  • *
  • Сообщений: 101
    • Просмотр профиля
Re: gcc и conio.h
« Ответ #8 : 16 Января 2009, 11:04:49 »
Хоть один ответ по теме будет?

Оффлайн slaviart

  • Автор темы
  • Участник
  • *
  • Сообщений: 101
    • Просмотр профиля
Re: gcc и conio.h
« Ответ #9 : 16 Января 2009, 11:06:58 »
Какие библиотеки линковать дополнительно компилятор должен магическим образом догадаться? libm (gcc -lm)

Дополнительно:
Нет проверок деления на ноль (sic!), нет проверок входных данных, количество, хранимое во float-е - красиво, тупое сравнение на равенство в while... В общем, можно понаполучать очень интересных результатов.

ЗЫ. Учись, наконец, пользоваться поисковиками.
\

Для начаала хотелось бы что бы сама программа работала , а потом проверки можно уже делать.Тупое сравнение предлогай лучше.

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: gcc и conio.h
« Ответ #10 : 16 Января 2009, 11:48:46 »
файл был создан под рутом

Это почти не важно, наверняка у него атрибуты rw-r--r--

Если же нет, то
sudo chown slaviart:slaviart lab3.c , и файл уже не под рутом.

Для начаала хотелось бы чтобы сама программа работала, а потом проверки можно уже делать.
Это неправильно, для начала надо придумать алгоритм и нарисовать его на бумаге.

Тупое сравнение - предлагай лучше.
Лучше <=.
При != цикл рискует стать бесконечным.
Оператор сравнения == для переменных типа float или double почти никогда не дает результата "истина"

Т.е. если имеем

float a,b ;
...
if(a==b) {
...   //  -  вот этот код почти никогда не выполняется.
}

« Последнее редактирование: 16 Января 2009, 11:55:56 от wl »
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: gcc и conio.h
« Ответ #11 : 16 Января 2009, 11:52:23 »
И еще одна ошибка:
printf("+ %5.5f+ %5.5f+\n",&x_begin,y(x_begin));Не &x_begin, а x_begin.

Раз уж у вас С, то следует разобраться, что такое указатели, и как функциям передаются аргументы.
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн slaviart

  • Автор темы
  • Участник
  • *
  • Сообщений: 101
    • Просмотр профиля
Re: gcc и conio.h
« Ответ #12 : 16 Января 2009, 12:06:53 »
то старую версию кода скинул  :( просто не заметил . :idiot2:

slaviart@slaviart-desktop:~/ProjectC/lab3$ sudo gcc lab3.c -o lab3
/tmp/ccOOZM5K.o: In function `y':
lab3.c:(.text+0xf2): undefined reference to `sin'
lab3.c:(.text+0x104): undefined reference to `pow'
collect2: выполнение ld завершилось с кодом возврата 1

так что на счет этого?

на счёт проверки,я когда-то читал делается условие типо когда значение x_begin будет на растояние от значение x_end выполнится условие , не помните как такое сформировать там что-то умножалось на 10 в -6

Оффлайн slaviart

  • Автор темы
  • Участник
  • *
  • Сообщений: 101
    • Просмотр профиля
Re: gcc и conio.h
« Ответ #13 : 16 Января 2009, 12:12:21 »
Цитировать
Это неправильно, для начала надо придумать алгоритм и нарисовать его на бумаге.

не надо мну учить с чего начинать , эта не та программа в которой надо сначала сообразить алгоритм работы.
Делал это ночью и жутко хотелось спать поэтому мелкие ошибки вполне могли быть.

Цитировать
Раз уж у вас С, то следует разобраться, что такое указатели, и как функциям передаются аргументы.

Спасибо я знаю что такое указатели и как передаются параметры в функцию printf() если бы не знал то и перед вызовом функции y() тоже поставил амперсанд тоесть ссылку на функцию

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: gcc и conio.h
« Ответ #14 : 16 Января 2009, 12:19:42 »
Цитировать
Это неправильно, для начала надо придумать алгоритм и нарисовать его на бумаге.
не надо мну учить с чего начинать , эта не та программа в которой надо сначала сообразить алгоритм работы.
Делал это ночью и жутко хотелось спать поэтому мелкие ошибки вполне могли быть.
Выспались? Тогда вперед - читать!
Сначала еще раз все сообщения в этой ветке, т.к. ответы на все вопросы даны, а потом про "типо когда значение", если предложенные решения не подойдут.

Я подозреваю, что имелось в виду сравнение разности переменных с очень маленьким значением.
Не  if(a==b), а if(fabs(a-b) < 1e-6)
« Последнее редактирование: 16 Января 2009, 12:31:24 от wl »
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

 

Страница сгенерирована за 0.057 секунд. Запросов: 25.