Задачи на ветвление

Discussion in 'Болталка' started by АлексDevil, 19 May 2010.

  1. АлексDevil

    Joined:
    5 Apr 2010
    Messages:
    10
    Likes Received:
    3
    Reputations:
    0
    помогите, пожалуйста, на Си сделать задачи

    вам, программистам, не сложно, а для меня, школьника, это долгая работа.
     
  2. АлексDevil

    Joined:
    5 Apr 2010
    Messages:
    10
    Likes Received:
    3
    Reputations:
    0
    решаю вторую задачу.

    Code:
    void main ()
    {
    float x,y;
    printf("\n введите значение X");
    scanf("%d",x);
    printf("\n введите значение Y");
    scanf("%d",y);
    тут надо ввести формулу, которая будет определять, выпуклый или нет
    if бла бла esle тоже не знаю что писать
    }
    подскажите ПЛЗ
    формулу лучше ввести в строчку с if
     
  3. GrimmJow

    GrimmJow Elder - Старейшина

    Joined:
    24 Nov 2007
    Messages:
    36
    Likes Received:
    7
    Reputations:
    0
    Code:
    [COLOR=Red]cout[/COLOR] "Введите Х\n";
    [COLOR=Red]cin[/COLOR] >> x;
    [COLOR=Red]cout[/COLOR] "Введите Y\n";
    [COLOR=Red]cin[/COLOR] >> y;
    
    if x[COLOR=Red]<[/COLOR]y
    {int z = x;
    x = y;
    y = z;}
     
    #3 GrimmJow, 19 May 2010
    Last edited: 19 May 2010
  4. m0Hze

    m0Hze Elder - Старейшина

    Joined:
    1 Nov 2008
    Messages:
    266
    Likes Received:
    646
    Reputations:
    208
    Это что за язык? Суахали?
     
  5. Scripter

    Scripter Member

    Joined:
    3 Sep 2008
    Messages:
    141
    Likes Received:
    95
    Reputations:
    6
    Суахали - комбинация языков африканских племен :D:D:D:D
     
    #5 Scripter, 19 May 2010
    Last edited: 19 May 2010
  6. yaneblinchik

    yaneblinchik Member

    Joined:
    6 Feb 2010
    Messages:
    113
    Likes Received:
    19
    Reputations:
    0
    С оператором вывода чуть намудили
    Думаю ТС сам справится,исправит их. Ведь ему если я не ошибаюсь нужно на чистом С,а здесь уже C++
     
  7. АлексDevil

    Joined:
    5 Apr 2010
    Messages:
    10
    Likes Received:
    3
    Reputations:
    0
    то что вы дали не компилируется в VS 2008
    нужно делать с функциями printf и scanf
    кто может дописать мой #2 пост?
    язык C++
     
  8. yaneblinchik

    yaneblinchik Member

    Joined:
    6 Feb 2010
    Messages:
    113
    Likes Received:
    19
    Reputations:
    0
    Вот ты и делаешь задачи на C

    Оно и не будет компилится,так как код не дописан


    функции printf , scanf используется в языке C
    а в C++ это cout

    Тебе рано еще кодить
     
  9. АлексDevil

    Joined:
    5 Apr 2010
    Messages:
    10
    Likes Received:
    3
    Reputations:
    0
    ну кодить может еще и рано (и я не особо хочу этим заниматься) но то что я выложил, это домашняя работа по информатике
    и тоже самое будет на контрольной в пятницу =(
     
  10. GrimmJow

    GrimmJow Elder - Старейшина

    Joined:
    24 Nov 2007
    Messages:
    36
    Likes Received:
    7
    Reputations:
    0


    Code:
    void main ()
    {
    float x1,y1,x2,y2,x3,y3,x4,y4;
    cout << "\n введите значение X1";
    cin >> x1;
    cout << "\n введите значение Y1";
    cin >> y1;
    cout << "\n";
    
    cout << "\n введите значение X2";
    cin >> x2;
    cout << "\n введите значение Y2";
    cin >> y2;
    cout << "\n";
    cout << "\n введите значение X3";
    cin >> x3;
    cout << "\n введите значение Y3";
    cin >> y3;
    cout << "\n";
    cout << "\n введите значение X4";
    cin >> x4;
    cout << "\n введите значение Y4";
    cin >> 4;
    cout << "\n";
    
    
    //если угол >180, знач НЕвыпуклый. Угол определить сможешь?
    
    return 0
    }



    Есть такое на паскале решенное. Посмотри, может по аналогии сделаешь :D

    Code:
    uses crt;
    
    function angle(x1,y1,x2,y2:integer):real;
    var
      dx,dy:integer;
      r:real;
    begin
      dx:=x2-x1;
      dy:=y2-y1;
      r:=sqrt(dx*dx+dy*dy);
      if dy>=0 then
      begin
        if dx=0 then angle:=pi/2;
        if dx>0 then angle:=abs(arctan(dy/dx));
        if dx<0 then angle:=pi-abs(arctan(dy/dx));
      end;
      if dy<0 then
      begin
        if dx=0 then angle:=3*pi/2;
        if dx>0 then angle:=2*pi-abs(arctan(dy/dx));
        if dx<0 then angle:=pi+abs(arctan(dy/dx));
      end;
    end;
    
    var
      i,i1,k:integer;
      a1,a2:real;
      key:boolean;
    begin
      clrscr;
    
      write('kol='); readln(k);
      for i:=1 to k do
      begin
        write('Введите координаты x и y vershiny v[',i,']:');
        readln(v[i,1],v[i,2]);
      end;
      key:=true;
      for i:=2 to k do
      begin
        if i=k then i1:=1 else i1:=i+1;
        a1:=angle(v[i-1,1],v[i-1,2],v[i,1],v[i,2]);
        a2:=angle(v[i,1],v[i,2],v[i1,1],v[i1,2]);
        if (((a2-a1)<0)and((a2-a1)>-pi)) or ((a2-a1)>pi) then
        begin
          key:=false;
          break;
        end;
      end;
      a1:=angle(v[k,1],v[k,2],v[1,1],v[1,2]);
      a2:=angle(v[1,1],v[1,2],v[2,1],v[2,2]);
      if (((a2-a1)<0)and((a2-a1)>-pi)) or ((a2-a1)>pi) then key:=false;
      if key=true then writeln('Выпуклый') else writeln('Вогнутый');
      readkey;
    end.