Студентам с лабораторными сюда (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by _Great_, 20 Jun 2007.

Thread Status:
Not open for further replies.
  1. XimiK69

    XimiK69 Member

    Joined:
    2 Jan 2010
    Messages:
    45
    Likes Received:
    5
    Reputations:
    0
    criptic проверь ЛС или ICQ
     
  2. juzam

    juzam New Member

    Joined:
    18 Oct 2010
    Messages:
    45
    Likes Received:
    2
    Reputations:
    0
    Возник такой вопрос, в начале программы есть проверка, допустим такая
    в результате этого нужно остановить программу и вывести сообщение, аля пхпэшный exit, Си изучаю недавно. Внимание вопрос: "Как это сделать в Си?".
     
  3. XimiK69

    XimiK69 Member

    Joined:
    2 Jan 2010
    Messages:
    45
    Likes Received:
    5
    Reputations:
    0
    juzam можно через throw и ловить ошибки в try{}catch(char *error){}. Вариантов много. Можно попробовать exit(1) или return -1
     
  4. Paha007

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

    Joined:
    2 Mar 2008
    Messages:
    90
    Likes Received:
    115
    Reputations:
    1
    Лабораторная работа №3
    Программирование циклов с неизвестным заранее числом повторений
    Цель работы: освоение средств языка С++ для описания итерационных циклов и закрепление навыков использования их при программировании.

    В этой лабе нужно вывести точно значение функции [​IMG]

    но это все фигня.... основная цель этой задачи лежит в том чтобы высчитать приближенное значение по функции [​IMG]
    как я понял: надо раскрыть скобки и выявить зафисимость последующих элементов этой функции .. также выявить последовательность знаком + или -
    и прога будет считать приближенное значение до значение эпсилон например 0.000001
    >=eps

    чуть кода
    Свои попытки выкладывать не стал .. там бредокод =(
    как говорится лучше заново написать чем в чужом разбираться

    #include <iostream.h>
    #include <conio.h>
    #include <math.h>


    void main()
    {

    double X, eps;
    clrscr();
    cout << "BBeguTe 3HA4eHue ApryMeHTa X=";
    cin >> X;
    cout << "T04HOCTb EPS=";
    cin >> eps;

    do
    {


    }
    While(fabs(a)>=eps);
    cout << "IIpu6/\u}I{eHHoe 3HA4eHue arcctg x=" << ////////;
    cout << "To4HOE 3HA4eHue arcctg x=" << ////////////;
    }


    ЗАРАНЕЕ БОЛЬШУЩИЕ СПАСИБО =*
     
    #3004 Paha007, 29 Oct 2010
    Last edited: 29 Oct 2010
  5. Hixon

    Hixon Member

    Joined:
    17 Apr 2010
    Messages:
    88
    Likes Received:
    9
    Reputations:
    0
    Paha007, формула n-ого члена для расчета функции выводится с помощью ru.wikipedia.org
     
  6. Paha007

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

    Joined:
    2 Mar 2008
    Messages:
    90
    Likes Received:
    115
    Reputations:
    1
    я наподобие делал =)
    вот только задавал число пи 3.14 константой и аркатангенс хадавал формулой так как в <math.h> нет такой функции =(
    но всеравно прога не работает =( я 2 неделю епусь с ней =(

    Может число пИ надо как нибудь подругому задавать?

    _____
    убежал в вуз =( :(
     
    #3006 Paha007, 29 Oct 2010
    Last edited: 29 Oct 2010
  7. XimiK69

    XimiK69 Member

    Joined:
    2 Jan 2010
    Messages:
    45
    Likes Received:
    5
    Reputations:
    0
    Программу не тестировал, не было времени. Но алгоритм должен быть верным. Большие числа не бери, компьютер не сможет посчитать, а на отрезке [-1,1] любое вещественное число должно считать верно. Результат можешь сравнить со значениями на нигме.
     
  8. Pack4

    Pack4 New Member

    Joined:
    28 Jun 2010
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    Помогите перевести на С
    Написал алгоритм на С++, нужно его в С переписать:
    Code:
    #include <iostream.h>
    #include <math.h>
      void main(void)
    { int i; // Цикловая переменная 
    int x; int m,n;  // Вводим размерность матрицы 
    cout << "Enter count of lines: ";
     cin >> m; 
    cout << "Enter count of columns: ";
     cin >> n;
    [COLOR=DarkOrange] int **a=new int *[m]; // Массив указателей длиной X for(int i=0;i<m;i++)
     a[i]=new int [n]; //Матрица [/COLOR]
     // Вводим значения 
    for(int i=0;i<m;i++)
     for(int j=0;j<n;j++)
    {
     cin >> a[i][j];
    } 
     int maxVal, minVal, totalMin;
     for(int i = 0; i < m; ++i)
    {         
    minVal = a[i][0];
             maxVal = a[i][0];
             for(int j = 0; j < n; ++ j)
    {               
      if(a[i][j] > maxVal)
                             maxVal = a[i][j];  
                   if(a[i][j] < minVal)    
                         minVal = a[i][j];  
           }        
     if(i == 0)    
                totalMin = maxVal - minVal;  
           int raz = maxVal - minVal; 
             if(raz > totalMin)   
                  totalMin = raz;
     } 
    cout<<totalMin<<' '<<endl; 
     char t[10];
     cin>>t; 
    }
    
    В общем вся проблема в объявлении матрицы, в С насколько я знаю нет оператора new, помогите перевести, кто разбирается?
     
  9. XimiK69

    XimiK69 Member

    Joined:
    2 Jan 2010
    Messages:
    45
    Likes Received:
    5
    Reputations:
    0
    Вот так в С происходит создание двумерной матрицы

    А ввод и вывод ( cin и cout ) замени на printf(); scanf();
    А код выше какой вы написали вообще не работает! Кто так выделяет память под матрицу?
    Code:
     int **a=new int *[m]; // Массив указателей длиной X for(int i=0;i<m;i++)
     a[i]=new int [n]; //Матрица 
    
     
  10. Pack4

    Pack4 New Member

    Joined:
    28 Jun 2010
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    Спасибо за ответ)
    Не знаю почему не работает, запускал все норм
     
  11. FoXuk

    FoXuk New Member

    Joined:
    23 Dec 2009
    Messages:
    76
    Likes Received:
    3
    Reputations:
    0
    задание - найти все простые числа от 2 до 100 000
    поправьте где ошибки(
    Code:
    #include "stdafx.h"
    #include <stdio.h>
    #include <conio.h>
    #include <iostream>
    
    using namespace System ;
    
    const long N=10000;
    
    int main(array<System::String ^ > ^args);
    {
    unsigned char r[N/8+1];
    for(long i; i<=N/8; ++i)
    r[i]xFF;
    for(long i=2; i<=N/2; ++i)
    if (r[i/8]&(0x80>>i%8))
    for(long j=2*i; j<=N; j+=i)
    r[j/8]&=~(0x80>>j%8);
    for(long i=2; i<=N; ++i)
    if (r[i/8]&(0x80>>i%8))
    printf("%8i",i);
    getch();
    return 0;
    }  
     
  12. Hixon

    Hixon Member

    Joined:
    17 Apr 2010
    Messages:
    88
    Likes Received:
    9
    Reputations:
    0
    Пи задаётся, как M_PI, но для этого нужно подключить какую-то из этих библиотек, а какую я не помню.
    #include <cmath>
    #include <iostream>
    #pragma hdrstop
    #include <stdio.h>
    #include <math.h>
    #include <limits.h>
    #include <values.h>
    #include <conio.h>
    #include <iostream.h>
     
  13. cel1697i845

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

    Joined:
    22 Nov 2008
    Messages:
    618
    Likes Received:
    396
    Reputations:
    80
    Алгоритм поиска простого числа. C#

    FoXuk
    Простое число - число которое делится только на единицу и на саму себя.
    Ниже приведен пример поиска простого числа от 1 до 99. и вывод в textBox1.Text

    Code:
    bool b1 = true;
    for (int i = 1; i < 100; i++)
    {
      for (int i1 = 2; i1 < i; i1++)
      {
        if (i % i1 == 0)
        {
          b1 = false;
          break;
        }
      }
      if (b1 == true)
      {
        textBox1.AppendText(i.ToString() + "\r\n");
      }
      b1 = true;
    }
    P.S. вдруг поможет.
     
  14. XimiK69

    XimiK69 Member

    Joined:
    2 Jan 2010
    Messages:
    45
    Likes Received:
    5
    Reputations:
    0
    если уж говорить о простом числе A, то лучше проверять не все делители, а лишь делители, которые меньше sqrt(A)
     
  15. cel1697i845

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

    Joined:
    22 Nov 2008
    Messages:
    618
    Likes Received:
    396
    Reputations:
    80
    Если Вы это мне, то я разве не так делаю.
    i - простое число
    i1- то число которое проверяю
    условие вот for (int i1 = 2; i1 < i; i1++)
     
  16. XimiK69

    XimiK69 Member

    Joined:
    2 Jan 2010
    Messages:
    45
    Likes Received:
    5
    Reputations:
    0
    Code:
    bool b1 = true;
    for (int i = 1; i < 100; i++)
    {
      int n = sqrt(i);
      for (int i1 = 2; i1 <= n; i1++)
      {
        if (i % i1 == 0)
        {
          b1 = false;
          break;
        }
      }
      if (b1 == true)
      {
        textBox1.AppendText(i.ToString() + "\r\n");
      }
      b1 = true;
    }
     
  17. Pack4

    Pack4 New Member

    Joined:
    28 Jun 2010
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0


    Что-то после этих изменений вообще ниче не работает(((
    Выручите пожалуйста, переведите в С
    Code:
    #include <iostream.h>
    #include <math.h>
      void main(void)
    { int i; // Цикловая переменная 
    int x; int m,n;  // Вводим размерность матрицы 
    cout << "Enter count of lines: ";
     cin >> m; 
    cout << "Enter count of columns: ";
     cin >> n;
     int **a=new int *[m]; // Массив указателей длиной X for(int i=0;i<m;i++)
     a[i]=new int [n]; //Матрица 
     // Вводим значения 
    for(int i=0;i<m;i++)
     for(int j=0;j<n;j++)
    {
     cin >> a[i][j];
    } 
     int maxVal, minVal, totalMin;
     for(int i = 0; i < m; ++i)
    {         
    minVal = a[i][0];
             maxVal = a[i][0];
             for(int j = 0; j < n; ++ j)
    {               
      if(a[i][j] > maxVal)
                             maxVal = a[i][j];  
                   if(a[i][j] < minVal)    
                         minVal = a[i][j];  
           }        
     if(i == 0)    
                totalMin = maxVal - minVal;  
           int raz = maxVal - minVal; 
             if(raz > totalMin)   
                  totalMin = raz;
     } 
    cout<<totalMin<<' '<<endl; 
     char t[10];
     cin>>t; 
    }
    
     
  18. becensed

    becensed Member

    Joined:
    2 Dec 2009
    Messages:
    84
    Likes Received:
    24
    Reputations:
    1
    Code:
    #include <stdio.h>
    
    void main(void)
    {
        int i,j; // Цикловая переменная 
        int x; 
        int m,n;  // Вводим размерность матрицы 
        int **a;
        int maxVal, minVal, totalMin, raz;
        char t[10];
    
        printf("Enter count of lines: "); scanf("%d",&m);
        printf("Enter count of columns: "); scanf("%d",&n);
        
        a = (int **) malloc(m * sizeof(int *));
        for (i=0; i<m; i++) a[i] = (int *) malloc(n * sizeof(int));
    
        // Вводим значения 
        for (i=0; i<m; i++)
            for (j=0; j<n; j++)
                scanf("%d",&a[i][j]);
    
        for(i=0; i<m; ++i)
        {         
            minVal = a[i][0];
            maxVal = a[i][0];
            
            for(j=0; j<n; ++j)
            {               
                if(a[i][j] > maxVal) maxVal = a[i][j];  
                if(a[i][j] < minVal) minVal = a[i][j];  
            }        
    
            if(i == 0) totalMin = maxVal - minVal;  
            raz = maxVal - minVal; 
            
            if(raz > totalMin) totalMin = raz;
        } 
    
        free(a);
    
        printf("%d \n",totalMin);
        scanf("%s",&t); //?
    }
    типа такого.
     
    #3018 becensed, 31 Oct 2010
    Last edited: 31 Oct 2010
  19. SHAXID

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

    Joined:
    13 Dec 2007
    Messages:
    24
    Likes Received:
    17
    Reputations:
    -6
    Ребят, помогите, пожалуйста, написать прогу по этому заданию:

    Дан массив целых чисел от 1 до 20 .диапазон (0,20)..сгенерировать, создать новый массив в котором будут все нечетные числа.

    На Delphi. И скажите какие компоненты на форму-то кидать. =))
     
  20. flash1989

    flash1989 New Member

    Joined:
    18 Sep 2010
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
Thread Status:
Not open for further replies.