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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2008, 23:01   #1
xalex17
 
Регистрация: 06.04.2008
Сообщений: 7
По умолчанию добавить функцию, С

Код:
#include "conio.h"
#include "stdio.h"
#include "math.h"
main (void){
float x,y,a,b;

printf("\n Vvedite x=");
scanf("%f",&x);

if(abs(x)>(atan(2)+atan(3))){
	a=(pow(10,x)*sqrt(0.5)-0.5*pow(x,1/3));
	b=asin(-(1/x)*(atan(2)+atan(3)));
	if(a/10>abs(10*b)){
		y=sqrt(15*pow(a,2)+21*pow(b,2));}
	else{
		y=log(3*abs(atan(a))+5*abs(atan(b)));};
		
	printf(" S vvedennim zna4eniem x:\n a=%6.2f,\n b=%6.3f,\n y=%6.2f",a,b,y);}
	
else{printf(" S vvedennim zna4eniem x, drugie znachenija ne bili najdeni");};

getch();
return 0;
}
добрый вечер! никак не могу сдать лабораторку первую

суть программы в том, что вводится число и оно обрабатывается опеределенными формулами (всё это вроде как работает на ура).

но если ввести число меньше 3, то значение не находятся. нужно написать функцию, которая будет спрашивать - хотите ли вы ввести еще одно число, если выводится сообщение что числа не найдены. функцию, где после каждого введенного числа считывает новое у меня написать получилось, а такую к сожалению нет!

спасибо за внимание!

Последний раз редактировалось xalex17; 28.10.2008 в 23:48.
xalex17 вне форума Ответить с цитированием
Старый 29.10.2008, 21:42   #2
Pord
Пользователь
 
Регистрация: 29.10.2008
Сообщений: 20
По умолчанию

ну тут ошибка маленькая: 1/3=0, что бы компилятор понял что число вещественное нужно показать это явно например так 1/3.
а так я бы написал бесконечный цикл типа этого
Код:
#include "conio.h"
#include "stdio.h"
#include "math.h"
main (void){
float x,y,a,b;
int kod;
bool quit=false;


while (!quit)
{
        printf("\n Vvedite x=");
        scanf("%f",&x);
        if(abs(x)>(atan(2)+atan(3)))
        {
	        a=(pow(10,x)*sqrt(0.5)-0.5*pow(x,1/3.));
	        b=asin(-(1/x)*(atan(2)+atan(3)));
	        if(a/10.>abs(10*b))
                {
		        y=sqrt(15*pow(a,2)+21*pow(b,2));
                }
	        else
                {

		        y=log(3*abs(atan(a))+5*abs(atan(b)));
                }
	        printf(" S vvedennim zna4eniem x:\n a=%6.2f,\n b=%6.3f,\n y=%6.2f",a,b,y);
                quit=true;
        }
        else
        {
                printf(" S vvedennim zna4eniem x, drugie znachenija ne bili najdeni\n");
                printf("Novoe chislo?\n0 - yes\n1 - no\n");
                scanf("%i",&kod);
                if (kod==0)
                {
                        quit=false;
                }
                else
                {
                        quit=true;
                }
        }
}
getch();
return 0;
}
Pord вне форума Ответить с цитированием
Старый 01.11.2008, 06:35   #3
xalex17
 
Регистрация: 06.04.2008
Сообщений: 7
По умолчанию

спасибо большое, буду думать и понимать вышенаписанное
xalex17 вне форума Ответить с цитированием
Старый 12.11.2008, 03:39   #4
xalex17
 
Регистрация: 06.04.2008
Сообщений: 7
По умолчанию

Pord, спасибо конечно же большое за отзывчивость, но у меня ваша программа не запустилась! За её написание брался стабильно по понедельникам или вторникам каждые две недели (конктретно перед очередной практикой) и вот сейчас я убил целый вечер на составление алгоритма, перелопачивания книги и сети, чтобы на шару (!) попробовать написать программу с операторами goto. На это я потратил собственно десятки секунд

Код:
#include "conio.h"
#include "stdio.h"
#include "math.h"
main (void){
float x,y,a,b;
wq:
printf("\n Ievadiet x=");
scanf("%f",&x);

if(abs(x)>(atan(2)+atan(3)))

{
	a=(pow(10,x)*sqrt(0.5)-0.5*pow(x,1/3.));
	b=asin(-(1/x)*(atan(2)+atan(3)));
	
    if(a/10>abs(10*b))

{
		y=sqrt(15*pow(a,2)+21*pow(b,2));   
  }
	else
    {
		y=log(3*abs(atan(a))+5*abs(atan(b)));
        };
		
	printf(" Pie uzdotas x vertibas:\n a=%6.2f,\n b=%6.3f,\n y=%6.2f",a,b,y); goto qw;
    }
	
else
{printf(" Pie uzdotas x vertibas b netiek atrasts"); goto wq;
}
qw:
getch();
return 0;
}

Последний раз редактировалось xalex17; 12.11.2008 в 03:40. Причина: добавил теги
xalex17 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
написать кэш-функцию andrey4623 Общие вопросы Delphi 6 01.04.2011 11:59
оформить как функцию arturka Помощь студентам 11 20.06.2008 23:41
Подскажите функцию juden Microsoft Office Excel 1 06.12.2007 18:28
Перевод строки в функцию кетчуп Помощь студентам 6 23.11.2007 17:04
Паскаль. Решить функцию. Dopeman Помощь студентам 7 18.09.2007 22:13