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

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

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

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

    Joined:
    6 Feb 2006
    Messages:
    248
    Likes Received:
    52
    Reputations:
    3
    Делаешь из отрезков вектора, и проверяешь на коллинеарность.
     
  2. Lazy_Student

    Lazy_Student Banned

    Joined:
    14 Nov 2009
    Messages:
    4
    Likes Received:
    0
    Reputations:
    -10
    Помагите решить задачу на делпфи

    Надо цыкл сделать фор и типа чтобы масив из 256 элиментов заполнить прастыми числами. Числа только прастые!
    Хэлп плиз решите дам +++
     
  3. Linkus

    Linkus Member

    Joined:
    20 Dec 2008
    Messages:
    168
    Likes Received:
    15
    Reputations:
    -1
    Вот код подобной задачи на паскале. Выводит простые числа от 1 до 100 на экран. Доработаешь :) удачи!
    Code:
    program z6;
    var i,k,n: integer;
    begin
    for i:= 2 to 100 do begin
    	n:= 0;
    	k:= 1;
    	while(k<=i) and (n<3) do begin
    		if (i mod k) = 0 then n:= n+1;
    		k:= k+ 1;
    		end;
    	if n=2 then write(i,' ');
    	end;
    
    readln
    end.
     
  4. StealthMaster

    StealthMaster Member

    Joined:
    3 Dec 2008
    Messages:
    52
    Likes Received:
    11
    Reputations:
    0
    Описание: В моем примере заполняется целочисленный массив длины 256 простыми числами, а затем результат выводится в Memo.

    Краткое пояснение
    : число будет простым в том и только том случае, когда оно не делится ни на одно из предыдущих простых чисел.

    Code:
    type
      PrimeNumbers = Array [byte] of integer;
    
    
    function GetPrimeNumbers: PrimeNumbers;
    var
      counter, number: integer; // текущий номер простого числа и само число
      i: integer; // счетчик цикла
      flag: boolean;
    begin
      counter := -1;
      number := 2;
    
      while (counter < 255) do
        begin
          flag := true;
    
          if counter >= 0 then // у меня в Delphi 7 под Win7 некорректно отрабатывает 
                               //цикл for, если второй индекс меньше первого.
                               // возможно  проблема исключительно моей системы
            for i := 0 to counter do
              if (number mod Result[i] = 0) then
                begin
                  flag := false;
                  break;
                end;
    
          if flag then
            begin
              inc(counter);
              Result[counter] := number;
            end;
    
          inc(number);
        end;
    end;
    
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
      Numbers: PrimeNumbers;
      i: integer;
    begin
      Numbers := GetPrimeNumbers;
    
      for i := 0 to 255 do
        Memo1.Lines.Add(IntToStr(Numbers[i]));
    end;
    
     
    #1844 StealthMaster, 16 Nov 2009
    Last edited: 16 Nov 2009
  5. horlyk

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

    Joined:
    2 Dec 2007
    Messages:
    132
    Likes Received:
    6
    Reputations:
    0
    Народ, помогите плз, а то времени разбираться нету, а нужно срочно. Язык С++\С#

    Нужно построить график ф-и y = x^3 sin x в оконной форме. Нужно построить график выводом пикселей в форме. Потом сохранить скрин этого окошка(не всего рабочего стола, а именно этой формы) и сохранить его в формате *.prn - это для того, чтобы реализовать вывод на печать эмулятора матричного принтера.

    Мне главное знать как реализовать это фу-ю в программировании, выводить точки на экран в нужных координатах и как сделать и сохранить скрин этой формы.


    Заранее оч благодарен!
     
  6. Roston

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

    Joined:
    31 Jul 2008
    Messages:
    337
    Likes Received:
    104
    Reputations:
    8
    Блин ну что вы учите хоть примерно???
    А алгоритм оч просто... заганяеш в цыкл ф-цию свою с определенным шагом и выводиш какждый раз точку, чем мельче шаг тем точнее график получится
     
  7. Vinsik

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

    Joined:
    4 Oct 2008
    Messages:
    189
    Likes Received:
    4
    Reputations:
    -5
    Привет всем!
    Спасайте срочно пожалуйста!)
    Паскаль:
    Упорядочить массив А(20) методом слияния.
     
  8. Syntaxys

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

    Joined:
    2 Sep 2007
    Messages:
    61
    Likes Received:
    10
    Reputations:
    0
    Отсев.

    Удалить в заданном массиве х(н) "лишные" элементы
    кроме первого так, чтобы оставшиеся образовали
    возрастающую последовательность (за один просмотр массива).

    Сделал все, кроме упорядочивания. Подскажите как массив упорядочить за один просмотр массива или реализовать удаление и сортировку за один просмотр.

    Code:
    Program sdvig;
    type
        Mas=array [0..99] of integer;
    Procedure vvod(Var m:Mas; Var kolvo:integer);
              Var i:integer;
                  begin
                       repeat
                             write('Vvedite kolvo elementov:');
                             readln(kolvo);
                       until kolvo>0;
                       for i:=1 to kolvo do
                           begin
                                write('element:');
                                read(m[i]);
                           end;
                  end;
    Procedure udalenie(Var m:Mas; Var element:integer;Var kolvo:integer);
    Var i:integer;
       Begin
            for i:=element to kolvo do
                Begin
                m[i]:=m[i+1];
                End;
                kolvo:=kolvo-1; //не отображать нуль-элемент массива
                
       End;
    var i,m,kolvo,element:integer;
        accept:string;
        n:mas;
    Begin
         vvod(n,kolvo);
         repeat
         writeln('Vvedite Nomer elementa');
         readln(element);
         udalenie(n,element,kolvo);
           writeln('Massiv:');
           for i:=1 to kolvo do
               write(n[i],' ');
         writeln(' ');
         writeln('Udalit esho 1 element massiva?');
         writeln('Yes/no?');
         repeat
               read(accept);
         until (accept='no') or (accept='yes') ;
         until accept = 'no';
    end.
    
     
  9. velvetdust

    velvetdust New Member

    Joined:
    8 Nov 2008
    Messages:
    7
    Likes Received:
    0
    Reputations:
    -5
    Такая ситуация, срочно пришлось переводиться в универе в другую группу посреди семестра - и нужно срочно сдать лабу на с++, а я изучал си чистый, поэтому прошу вашей помощи. Задание такое:

    Пример выполнения лабы есть в архиве

    Пишите на почту [velvetdust(собака)yandex.ru], за сколько готовы сделать, я вам отвечу.

    P.S. Ребята говорят, что препод особенно любит блок-схемы, так что вот их важно сделать четко, как в примере...
    высокая закомментированность кода приветствуется)
     
  10. horlyk

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

    Joined:
    2 Dec 2007
    Messages:
    132
    Likes Received:
    6
    Reputations:
    0
    Заочников никто ничему не учит. Алгоритм построения я и сам придумаю. Мне основное знать нужно то, что я написал.
     
  11. bl00m

    bl00m New Member

    Joined:
    16 May 2009
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    помогите, пожалуйста.
    нужно написать cgi приложение на С++, которое делает следующее:
    В каждом слове текста k-ю букву заменить заданным символом. Если k больше длины слова, корректировку не выполнять.
    Заранее большое спасибо!
     
  12. Linkus

    Linkus Member

    Joined:
    20 Dec 2008
    Messages:
    168
    Likes Received:
    15
    Reputations:
    -1
    Code:
    Program SlivSort;
    const arrsize= 20;
    Var A,B : array[1..20] of integer;
        N,i  : integer;
    Procedure Sliv(p,q : integer); {процедура сливающая массивы}
    Var r,i,j,k : integer;
    Begin
     r:=(p+q) div 2;
     i:=p;
     j:=r+1;
     for k:=p to q do
     if (i<=r) and ((j>q) or (a[i]<a[j])) then
      begin
       b[k]:=a[i];
       i:=i+1;
      end
     else
      begin
       b[k]:=a[j];
       j:=j+1;
      end ;
     for k:=p to q do
    a[k]:=b[k];
    End;
    Procedure Sort(p,q : integer); {p,q - индексы начала и конца сортируемой части массива}
    Begin
     if p<q then {массив из одного элемента тривиально упорядочен}
     begin
      Sort(p,(p+q) div 2);
      Sort((p+q) div 2 + 1,q);
      Sliv(p,q);
     end;
    End;
    Begin
     {Определение размера массива A - N) и его заполнение}
     randomize;
     for i:= 1 to arrsize do begin
    	A[i]:= random(50);
    	write(A[i],' ');
    	end;
     Writeln;
    
     {запуск сортирующей процедуры}
     Sort(1,arrsize);
     {Вывод отсортированного массива A}
      for i:= 1 to arrsize do write(a[i],' ');
     readln;
    End.
    
    
     
  13. Badanga

    Badanga New Member

    Joined:
    21 Dec 2006
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    спасайте..
    написал программу на С++ которая высчитывает дни недели.
    стал писать защиту от дураков, но доделать её немогу.
    нужно сделать чтоб программа учитывала весокосные года и при ошибке писала что вы ошиблись.
    идейки есть( но к сажалению языка незнаю( ибо в универе прошлом учил паскаль(
    завтра сдавать а я низнаю как сделать(

    PHP:
    #include <stdio.h>
    #include <windows.h>
    #include <math.h>
    #include <conio.h>
    //_______________________Руссификатор консоли_______________________________________


    char bufRus[256];
    char*Rus(const char*text)
        {
        
    CharToOem(textbufRus);
        return 
    bufRus;
        }

    //_________________Программа___________________________
    void main ()
    {
        
    int daymonthyear;
        
    int c,y;
        
    int m;
        
    int d;

        
    printf(Rus("Определение дня недели по дате\n"));
        
    printf(Rus("ВВедите дату: день месяц год\n"));
        
    printf(Rus("Например: 5  12  2001\n"));


        
    printf(Rus("ВВедите: Месяц ->\n"));
            
    scanf("%i", &month);
    //__________________________Защита________________________________
    while (month>12)
    {
    if (
    month>12)
    {
    printf(Rus("Дибил, ошибся, попробуй ещё ->\n"));
    scanf("%i", &month); }
    else break;
    }
    //__________________________________________________________

        
    printf(Rus("ВВедите:  День ->\n"));
            
    scanf("%i", &day);

     
    //__________________________Защита________________________________
    while (month==1||month==3||month==5||month==7||month==8||month==10||month==12)
    {
    if (
    day>31)
    {
    printf(Rus("Дибил, ошибся, попробуй ещё ->\n"));
    scanf("%i", &day);}
    else break;
    }

    while (
    month==2)
    {
    if (
    day>29)
    {
    printf(Rus("Дибил, ошибся, попробуй ещё ->\n"));
    scanf("%i", &day);}
    else break;
    }

    while (
    month==4||month==6||month==9||month==11)
    {
    if (
    day>30)
    {
    printf(Rus("Дибил, ошибся, попробуй ещё ->\n"));
    scanf("%i", &day);}
    else break;

    }
    //__________________________________________________________
            
    printf(Rus("ВВедите:   Год ->\n"));
        
    scanf("%i", &year);

         
            if (
    month==1||month==2)
                    
    year--;
            
    m=month 2;

            if (
    m<=0m+=12;

        
    c=year/100;
        
    y=year-c*100;
        
    d=(day+(13*m-1)/5+y+y/4+c/4-2*c+777)%7;

        switch (
    d)
        {
        
        case 
    1printf(Rus("Понедельник\n")); break;
        case 
    2printf(Rus("Вторник\n")); break;
        case 
    3printf(Rus("Среда\n")); break;
        case 
    4printf(Rus("Четверг\n")); break;
        case 
    5printf(Rus("Пятница\n")); break;
        case 
    6printf(Rus("Суббота\n")); break;
        case 
    0printf(Rus("Воскресенье\n")); break;
            }
           
      

    getch ();

    }

     
  14. Roston

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

    Joined:
    31 Jul 2008
    Messages:
    337
    Likes Received:
    104
    Reputations:
    8
    Ну например
    Code:
    int god;
    if (god%4==0)
    printf("Год высокосный");
    походу так
    Дальше спихнуть в свой код сам думаю сможеш=)
     
    1 person likes this.
  15. warkk

    warkk Member

    Joined:
    20 Feb 2009
    Messages:
    139
    Likes Received:
    23
    Reputations:
    0
    Задача на Паскале: ........, Если масисив не упорядочен, то определить длину упорядоченной часта массива.
    я делаю так
    Code:
    t:=0;
            for i:=0 to n do
                begin
                     if m[i]<m[i+1] then k:=k+1
                     else
                         begin
                              if t<k then
                                 begin
                                      t:=k;
                                      k:=1;
                                 end
    
    И если масив состоит из 12123123451
    Выведет 5, т.к. это самая длинная упорядочена часть масива.
    Но если 12123123456
    То выведет 3, т.е. оно у меня не правильно считает, потому что не выполняется условие f m<m[i+1]
    Как сделать что бы нормально считало?
     
    #1855 warkk, 19 Nov 2009
    Last edited: 19 Nov 2009
  16. Roston

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

    Joined:
    31 Jul 2008
    Messages:
    337
    Likes Received:
    104
    Reputations:
    8
    Смотри. у тебя переменная t:=0
    В условии if t>k then
    begin
    t:=k;
    k:=1;
    end
    она всё время меньше k будет
     
  17. warkk

    warkk Member

    Joined:
    20 Feb 2009
    Messages:
    139
    Likes Received:
    23
    Reputations:
    0
    Но ведь во второй раз она может быть и больше k. Просто мне нужно самую длинную упорядоченную часть масива. Вдруг эта часть будет меньше предыдущей упорядоченной части.
     
  18. Roston

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

    Joined:
    31 Jul 2008
    Messages:
    337
    Likes Received:
    104
    Reputations:
    8
    Ты меня конешно извини, но я упор не вижу что бы твоя перемення t где нибудь увеличивалася
     
  19. warkk

    warkk Member

    Joined:
    20 Feb 2009
    Messages:
    139
    Likes Received:
    23
    Reputations:
    0
    t:=k;
     
  20. Roston

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

    Joined:
    31 Jul 2008
    Messages:
    337
    Likes Received:
    104
    Reputations:
    8
    Блин да посмотри сам... где в else ты проверяеш или t больше k... это условие никогда не збудетсо... може t меньше k?
     
    1 person likes this.
Thread Status:
Not open for further replies.