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

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

Thread Status:
Not open for further replies.
  1. >>serhio<<

    >>serhio<< New Member

    Joined:
    10 Feb 2009
    Messages:
    40
    Likes Received:
    0
    Reputations:
    0
    помогите найти ошибки
    program variant1;
    uses crt;
    var a,y,x:real;
    b:=Pi;
    c:=2*Pi;
    z:=Pi/4;
    y:=b;
    while y < = c do
    begin
    x:=1-2*cos(a*y)+ln(y);
    a:=ln(y)/ln(2);
    writeln(y,x,a);
    y:=y+z;
    end;
    readln;
    end.
     
  2. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Неопределены переменные b, c, z, Pi, нет ключевого слова begin, начинающего программу, разорван знак <= (пробела быть не должно)
     
  3. StealthMaster

    StealthMaster Member

    Joined:
    3 Dec 2008
    Messages:
    52
    Likes Received:
    11
    Reputations:
    0
    Pi это константа, а не переменная.


    >>serhio<< , с учетом сделанных замечаний, и не вникая в суть программы, можно сказать, что код будет выглядеть так:

    Code:
    program variant1;
    uses crt;
    var
      a, b, c, x, y, z:real;
    begin
      ClrScr;
      b:=pi;
      c:=2*Pi;
      z:=Pi/4;
      y:=b;
    
      while (y <= c) do
        begin
          x := 1 - 2*cos(a*y) + ln(y);
          a := ln(y)/ln(2);
          writeln(y,x,a);
          y := y+z;
        end;
      readln;
    end.
    
     
  4. ektomorf

    ektomorf New Member

    Joined:
    27 Oct 2009
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Подсчитать сумму ряда с абсолютной погрешностью менее 0.0001. Полученные результаты необходимо проверить,
    повторив вычисления с использованием стандартных функций. Результаты вывести на экран.
    Пояснение: вычисления необходимо производить оптимально. Например, не нужно заново вычислять 21ю степень числа X,
    если ранее была подсчитана 20я, нужно просто старое значение умножить на X.
    ВАРИАНТ 14
    [​IMG]
     
  5. 0ldbi4

    0ldbi4 Elder - Старейшина

    Joined:
    14 Apr 2008
    Messages:
    264
    Likes Received:
    51
    Reputations:
    10
    Помогите, сделать небольшую прогу: которая вязяв из мемо(или эдит пох вообще) русский текст выдаёт сколько раз в нём повторяется самое маленькое слово.
     
  6. StealthMaster

    StealthMaster Member

    Joined:
    3 Dec 2008
    Messages:
    52
    Likes Received:
    11
    Reputations:
    0
    Описание: построчно считываем текст из Memo и создаем список слов, в котором записаны слова и сколько раз каждое слово встречается. После всего этого находим в списке самое первое короткое (если слов такой длины несколько) слово и показываем сообщение с информацией о слове и количестве его вхождений в текст.

    Примечание: считаем, что слова ограничены символами " . , ! ? : ;

    Реализация на Delphi:
    Code:
    type
      // будем использовать записи с двумя полями: слово и количество таких слов в тексте 
      TWord = record
        WRD: string;
        number: byte;
      end;
    
    type
      TWords = array of TWord;
    
    var
      Words: TWords; // все слова текста
      EndSymbols: set of char; // символы, которые ограничивают слово
    
    ...
    
    procedure AddWord (word: string); // добавление нового слова в список
    var
      i: integer;
      lnth: byte;
      NewWord: boolean;
    begin
      lnth := length(Words);
      NewWord := true;
    
      // проверяем, не добавлено ли это слово уже в список слов
      for i := 0 to lnth-1 do 
        if Words[i].WRD = word then
          begin
            NewWord := false;
            // если в списке, то увеличиваем счетчик для него
            Words[i].number := Words[i].number + 1; 
            break
          end;
    
      if NewWord then // если не в списке, то добавляем
        begin
          SetLength(Words, lnth+1);
          Words[lnth].WRD := word;
          Words[lnth].number := 1;
        end;
    end;
    
    procedure FindWords(Text: string);
    var
      i: integer;
      tmpstr: string;
    begin
      EndSymbols := [' ', '.', ',', '!', '?', ':', ';', '"'];
      tmpstr := '';
    
      for i := 1 to length(Text) do // ищем все слова в строке
        if not(Text[i] in EndSymbols)
          then
            begin
              tmpstr := tmpstr + Text[i];
              if i = length(Text) then
                AddWord(tmpstr);
            end
        else
          if length(tmpstr) > 0 then
            begin
              AddWord(tmpstr);
              tmpstr := '';
            end;
    end;
    
    function FindShortWord: TWord; // ищем самое короткое слово
    var
      min: byte;
      i: integer;
    begin
      min := 0;
    
      for i := 1 to length(Words) - 1 do
        begin
          if length(Words[i].WRD) < length(Words[min].WRD) then
            min := i;
        end;
    
      Result := Words[min];
    end;
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
      i: integer;
      tmp: TWord;
    begin
      for i := 0 to Memo1.Lines.Count-1 do
        FindWords(memo1.Lines[i]);
    
     tmp := FindShortWord;
     ShowMessage('Самое короткое слово: '+ tmp.WRD + '. Встречается раз: ' + IntToStr(tmp.number));
    end;
    
     
    #1786 StealthMaster, 28 Oct 2009
    Last edited: 29 Oct 2009
    1 person likes this.
  7. <Maxwell>

    <Maxwell> Member

    Joined:
    27 Oct 2009
    Messages:
    0
    Likes Received:
    10
    Reputations:
    1
    помогите мне с лабами
     
  8. tester8

    tester8 New Member

    Joined:
    25 Oct 2009
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    и мне
     
  9. lastsmile

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

    Joined:
    22 Sep 2007
    Messages:
    40
    Likes Received:
    10
    Reputations:
    0
    ... если честно не понял самого задания.
    Что значит "для благоустройства массива за ростом и падением"?

    ну либо первое, либо одно из двух (с) хз
     
  10. tester8

    tester8 New Member

    Joined:
    25 Oct 2009
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Сортировка входных данных...
     
  11. lastsmile

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

    Joined:
    22 Sep 2007
    Messages:
    40
    Likes Received:
    10
    Reputations:
    0
    ... если честно не понял самого задания.
    Что значит "для благоустройства массива за ростом и падением"?

    ну либо первое, либо одно из двух (с) хз
     
  12. hallboy

    hallboy New Member

    Joined:
    11 Nov 2008
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Помогите пожалуйста!Очень срочно нужно.Буду очень благодарен откликнувшимся.
    Задание:
    Розработать матиматическую постановку задачи и сложить программы на языках Паскаль и Си для перещета координат точки с полярной системы в декартовую.
     
  13. tRanz

    tRanz Banned

    Joined:
    30 Oct 2009
    Messages:
    13
    Likes Received:
    3
    Reputations:
    0
    помогите
    Задача довольно проста в описании: "требуется создать нетипизированный интерпретатор". Вся загвоздка заключается вот в чём:
    язык ориентирован под математику -> основным "типом" будет являться комплексная матрица (это максимум который требуется при реализации). Как сформировать описание переменной, т.е. её структуру, через какие типы это сделать?.

    Я бы предложил, что-то типа:
    type
    TVariable = record
    Name:string; - название переменной
    Used:Boolean; - используется ли она в коде - проще говоря если она в коде встречается только 1 раз то её можно было бы и выкинуть. Циклы и тд не рассматриваю (мб я ошибаюсь)
    Real:Variant; - реальная часть переменной - может быть числом, строкой, массивом
    Imag:Variant; - мнимая часть/ Причём размеры реальной и мнимой части всегда равны.
    function ColCount:integer; - если Real массив, то возвращает длину иначе 0. (можно обойтись, но так проще для реализации )
    function RowCount:integer; - если Real двойной массив то возвращает длину иначе 0.
    end;

    Реализация убога тем, что при использовании Variant снижается скорость вычислений из-за проверки типов.

    Может кто-нибудь сможет подсказать более удобную и простую форму?
     
  14. Algol

    Algol New Member

    Joined:
    29 May 2002
    Messages:
    1,759
    Likes Received:
    4
    Reputations:
    0
    Число, строка - это частные случаи матрицы, следовательно ты можешь задать тип через динамический массив комплексных чисел, типа
    TMatrix=array of array of TPair;
    TPair = record
    a:real;
    b:real;
    end;

    HTML:
    Name:string; - название переменной
    Used:Boolean;
    Это вообще не нужно, эти параметры должен хранить интерпретатор, а не сама переменная.
     
  15. tRanz

    tRanz Banned

    Joined:
    30 Oct 2009
    Messages:
    13
    Likes Received:
    3
    Reputations:
    0
    Algol Ааа..вот он что...спасибо
    буду разбираться
     
  16. S-pero

    S-pero New Member

    Joined:
    17 Apr 2009
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    прошу помочь

    Люди помагите с лабой по С++ (написать алгоритм для решения линейных уравнений методом обратной матрицы) помагите кто знает за рание спасибо ! ! !
     
  17. люля

    люля New Member

    Joined:
    6 Aug 2008
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    помогите пожалуйста)
    есть программа, которая должна строить график, но она почему то выводит ошибку
    вот текст
    Code:
    #include<stdio.h>
    #include<conio.h>
    #include<math.h>
    #include<graphics.h>
    main()
    {float x0,xh,xk,x,y,mx,my;
    int gt,gm,err;
    gt=DETECT;
    initgraph(&gt,&gm,"");
    err= graphresult();
    if(err!=0)
    {clrscr();
    puts("ERROR");
    getch();
    return 1;
    }
    printf(" Input x0,xh,xk");
    scanf("%f %f %f", &x0,&xh,&xk);
    mx=(getmaxx()/2)/xk;
    my=(getmaxy()/2)/3;
    cleardevice();
    setbkcolor(14);
    setcolor(2);
    line(320, 0, 320, 480);
    line(0, 240, 640, 240);
    outtextxy(340, 230,"0");
    outtextxy(340, 20,"y");
    outtextxy(630, 230,"x");
    setcolor (1);
    for(x=x0;x<=xk;x+=xh)
     {y=(x*x+x)/(8+sqrt(x));
      if (fabs(x)<2)
      { y=y+pow(x,7);
      putpixel(floor(320+mx*x),floor(240-my*y),4);
      }
      else
      {y=y+sin(x);
      putpixel(floor(320+mx*x),floor(240-my*y),7);
      }
    }
    getch();
    return 0;
    }
    
    помогите пожалуста(все драйверы установлены)
     
    #1797 люля, 2 Nov 2009
    Last edited by a moderator: 2 Nov 2009
  18. BrainDeaD

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

    Joined:
    9 Jun 2005
    Messages:
    774
    Likes Received:
    292
    Reputations:
    214
    какую ошибку выдаёт? скопируй сюда.
     
  19. люля

    люля New Member

    Joined:
    6 Aug 2008
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    он вместо графика показывает ERROR
    и все(((

    ну вроде получилось а почему я не могу писать на русском??пишет рпи переводе на русский какие то непонятные символы среда borland c++ 3.1


    а вот еще вопрос язык си это база с++??и с++ язык высокого уровня??просто учительбница говорит да, а тут написано нет((кому верить?
     
  20. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    возможно просто у тя файл egavga.bgi потерян гдето. Он должен валяться в папке с прогой.

    С++ - это продолжение С в котором большой упор был сделан на классовую структуру.
    С и С++ - языки высокого уровня. Язык низкого уровня это тока ASM и HEX )
     
Thread Status:
Not open for further replies.