• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Написать программу в С

  • Автор темы Автор темы vitjok
  • Дата начала Дата начала

vitjok

Новые
Регистрация
29 Сен 2012
Сообщения
72
Реакции
0
Баллы
0
Написать программу в С

добрый день есть код который написал на паскале, но мне его нужно в си,
кто может помочь переписать? у самого не получается, на циклах застреваю
Код:
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.
 
у самого не получается, на циклах застреваю
Да в чем проблема-то конкретно? Вместо
Repeat <тело цикла> Until <условие>
ставите
do {<тело цикла>} while <антиусловие>
то есть если в Паскале условие
X<=4,
то в СИ (если я правильно понимаю) будет
X>4
Ну и т.д.
 
я знаю, но вся проблема и остается в цикле он у меня не идет до конца, и на нем падает
 
я знаю, но вся проблема и остается в цикле он у меня не идет до конца, и на нем падает
Так выложите программу - пусть наши СИшники посмотрят, может быть чего-нибудь и заметят.
 
да более вероятно то что, просто неправильно написал
Код:
#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);

         }

    }
}
 
Последнее редактирование:
да более вероятно то что, просто неправильно написал
Вероятность сего приближается к достоверности.
Извините, я в СИ - ни бельмеса. То есть просто совсем. И тем не менее, на мой взгляд, должно быть что-то в таком роде:
Код:
#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)          [COLOR=Red][I][B]ИМЕННО -10, а не 10!!!![/B][/I][/COLOR]
     {
      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)
 
спасибо Добрый Человек)) может кому пригодиться
вот рабочая прога

Код:
#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;
}
 
Назад
Сверху