Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 26.02.2014, 07:08   #1 (permalink)
vitjok
Member
 
Регистрация: 29.09.2012
Сообщений: 72
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Написать программу в С

добрый день есть код который написал на паскале, но мне его нужно в си,
кто может помочь переписать? у самого не получается, на циклах застреваю
Код:
Var
 X,Y:Real;
Begin
 Writeln('To quit the program type -10 az X');
 Repeat
  Repeat
   Write('X= ');
   Readln(X);
   If (X<0) and (X<>-10) then Writeln('X out of range: negatives are forbidden!');
  Until (X>=0) or (X=-10);
  If X>4 then
   Repeat
    X:=X-4;
   Until X<=4;
  If X<>-10 then
   begin
    If X<1 then
     Y:=Sqrt(1-Sqr(X-1)) else
    If (X>=1) and (X<3) then
     Y:=1-Sqrt(1-Sqr(X-2)) else
    Y:=Sqrt(1-Sqr(X-3));
    Writeln('Y= ',Y:0:3);
   end;
 Until X=-10;
End.
vitjok вне форума   Ответить с цитированием

Старый 26.02.2014, 07:08
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Вы можете найти ответ в похожих обсуждениях

Написать программу. С++
Помогите написать программу С++
Написать программу на задачу
Написать программу
Помогите написать программу

Старый 26.02.2014, 10:17   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от vitjok Посмотреть сообщение
у самого не получается, на циклах застреваю
Да в чем проблема-то конкретно? Вместо
Repeat <тело цикла> Until <условие>
ставите
do {<тело цикла>} while <антиусловие>
то есть если в Паскале условие
X<=4,
то в СИ (если я правильно понимаю) будет
X>4
Ну и т.д.
Vladimir_S вне форума   Ответить с цитированием
Старый 26.02.2014, 17:06   #3 (permalink)
vitjok
Member
 
Регистрация: 29.09.2012
Сообщений: 72
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

я знаю, но вся проблема и остается в цикле он у меня не идет до конца, и на нем падает
vitjok вне форума   Ответить с цитированием
Старый 26.02.2014, 17:12   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от vitjok Посмотреть сообщение
я знаю, но вся проблема и остается в цикле он у меня не идет до конца, и на нем падает
Так выложите программу - пусть наши СИшники посмотрят, может быть чего-нибудь и заметят.
Vladimir_S вне форума   Ответить с цитированием
Старый 26.02.2014, 17:42   #5 (permalink)
vitjok
Member
 
Регистрация: 29.09.2012
Сообщений: 72
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

да более вероятно то что, просто неправильно написал
Код:
#include <stdio.h>			
#include <conio.h>
#include <math.h>

int main()
{
    float x, y;

    prinf("\nx=");
    scanf("%f",&x);

    do
    {

        if (x>4)
         do
         {
           x=x-4;
           while (x>4);
           if (x!=10)
           if (x<1)
            y=sqrt(1-sqr(x-1));
           else
            if (x>=1 && x<3)
            y=1-sqrt(1-sqr(x-2));
            else
            y=sqrt(1-sqr(x-3));
            printf("\ny=%g",y);

         }

    }
}

Последний раз редактировалось vitjok; 26.02.2014 в 17:50
vitjok вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 26.02.2014, 20:54   #6 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от vitjok Посмотреть сообщение
да более вероятно то что, просто неправильно написал
Вероятность сего приближается к достоверности.
Извините, я в СИ - ни бельмеса. То есть просто совсем. И тем не менее, на мой взгляд, должно быть что-то в таком роде:
Код:
#include <stdio.h>            
#include <conio.h>
#include <math.h>

int main()
{
    float x, y;
do
{
    prinf("\nx=");
    scanf("%f",&x);
    if (x>4)
    do
    {
     x=x-4;
     }
     while (x>4);
                
     if (x!=-10)          ИМЕННО -10, а не 10!!!!
     {
      if (x<1)
      y=sqrt(1-sqr(x-1));
      else
      if (x>=1 && x<3)
      y=1-sqrt(1-sqr(x-2));
      else
      y=sqrt(1-sqr(x-3));
      }
      printf("\ny=%g",y);

         }

    } 
   while (x!=-10)
Vladimir_S вне форума   Ответить с цитированием
Старый 27.02.2014, 04:46   #7 (permalink)
vitjok
Member
 
Регистрация: 29.09.2012
Сообщений: 72
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

спасибо Добрый Человек)) может кому пригодиться
вот рабочая прога

Код:
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<math.h>
int main ()
{
float x, y;
printf("\nx=  ");
scanf("%f", &x);
if (x<0 && x != -10)
{
    printf("\nX out of range: negatives are forbidden!");
}
if (x>4)
{
   do
   {
       x=x-4;
   }while (x>=4);
}   
if (x != -10)
{
    if (x<1)
    {
        y = sqrt(1 - pow(x-1, 2));
    }else{
          if (x>=1 && x<3)
          {
             y = 1 - sqrt(1 - pow(x-2, 2));
          }else{
             y = sqrt(1 - pow(x-3, 2));
          }
    }
}
printf("\ny= %.2f",y);
_getch();
return 0;
}
vitjok вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 11:37.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.