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

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

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

    Weman New Member

    Joined:
    5 Mar 2008
    Messages:
    11
    Likes Received:
    1
    Reputations:
    0
    Массивы в паскале

    Здравствуйте!!! Нужна Ваша помошь!
    Дали такое задание на Pascale: используя подпрограммы-функции в массивах Х и У найти минимумы с учетом повторений и поменять их местами.

    Вроде ничего сложного. Написал код, все работает!
    Но никак не пойму, как переделать программу, чтобы получились функции...


    Code:
    Program MinXY;
    Uses Crt;
    
    Const
         MSize=10;
         n=2;
         m=3;
    Var
       x,y:array[1..n, 1..m] of Integer;
       {n,m:Integer;}
       tmp:Integer;
       i,j:Integer;
       PosXx, PosXy:Integer;
       PosYx, PosYy:Integer;
       ValX, ValY:Integer;
    
    {Function SearchMin:Integer;}
    
    Begin
         ClrScr;
         {********************************************}
         Writeln('Ввод массива Х!!!');
         for i:=1 to n do
             for j:=1 to m do
             begin
                  Write('x[',i,'][',j,'] -> ');
                  Readln(x[i][j]);
             end;
         Writeln;
    
         Writeln('Ввод масива Y!');
         for i:=1 to n do
             for j:=1 to m do
             begin
                  Write('y[',i,'][',j,'] -> ');
                  Readln(y[i][j]);
             end;
         {********************************************}
         Writeln;
         Writeln('Массив Х!');
         for i:=1 to n do
         begin
             for j:=1 to m do
                 Write(x[i][j],' ');
             Writeln;
         end;
         Readln;
    
         Writeln('Массив Y!');
         for i:=1 to n do
         begin
             for j:=1 to m do
                 Write(y[i][j],' ');
             Writeln;
         end;
         Readln;
         {********************************************}
         ValX:=x[1,1];
         PosXx:=1;
         PosXy:=1;
         for i:=1 to n do
         begin
             for j:=1 to m do
                 if x[i,j]<=ValX then
                 begin
                      ValX:=x[i,j];
                      PosXx:=i;
                      PosXy:=j;
                 end;
         end;
         Writeln('Найден Минимимум в массиве Х!');
         Writeln('Значение минимума: ',ValX);
         Writeln('Строка ',PosXx);
         Writeln('Столбец ', PosXy);
         Readln;
    
         ValY:=y[1,1];
         PosYx:=1;
         PosYy:=1;
         for i:=1 to n do
         begin
             for j:=1 to m do
                 if y[i,j]<=ValY then
                 begin
                      ValY:=y[i,j];
                      PosYx:=i;
                      PosYy:=j;
                 end;
         end;
         Writeln('Найден Минимимум в массиве Y!');
         Writeln('Значение минимума: ',ValY);
         Writeln('Строка ',PosYx);
         Writeln('Столбец ', PosYy);
         Readln;
         {********************************************}
         tmp:=x[PosXx,PosXy];
         x[PosXx,PosXy]:=y[PosYx,PosYy];
         y[PosYx,PosYy]:=tmp;
         {********************************************}
         Writeln;
         Writeln('Массив Х!');
         for i:=1 to n do
         begin
             for j:=1 to m do
                 Write(x[i][j],' ');
             Writeln;
         end;
         Readln;
    
         Writeln('Массив Y!');
         for i:=1 to n do
         begin
             for j:=1 to m do
                 Write(y[i][j],' ');
             Writeln;
         end;
         Readln; 
    End.
    
    Я так понимаю должно наверно быть три функции:
    1. Ввод массива (Х и У),
    2. Поиск минимумов в массивах Х и Y
    3. Замена минимумов местами


    Подскажите, как можно переделать, а то не совсем разорбрался с функциями...
    Заранее огромное спасибо!!!!!
     
  2. Syntaxys

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

    Joined:
    2 Sep 2007
    Messages:
    61
    Likes Received:
    10
    Reputations:
    0
    Veman

    Code:
    Program MinXY;
    Uses Crt;
    
    Const
         MSize=10;
         n=2;
         m=3;
    Type mas=array[1..n, 1..m] of Integer;
    Var
       x,y:mas;
       {n,m:Integer;}
       tmp:Integer;
       i,j,Vvodim,iskat,zamenit:Integer;
       PosXx, PosXy:Integer;
       PosYx, PosYy:Integer;
       ValX, ValY:Integer;
    
    
    Function Vvod(Var x:mas; Var y:mas):integer;
    Begin
    ClrScr;
         {********************************************}
         Writeln('Ввод массива Х!!!');
         for i:=1 to n do
             for j:=1 to m do
             begin
                  Write('x[',i,'][',j,'] -> ');
                  Readln(x[i,j]);
             end;
         Writeln;
    
         Writeln('Ввод массива Y!');
         for i:=1 to n do
             for j:=1 to m do
             begin
                  Write('y[',i,'][',j,'] -> ');
                  Readln(y[i,j]);
             end;
         {********************************************}
         Writeln;
         Writeln('Массив Х!');
         for i:=1 to n do
         begin
             for j:=1 to m do
                 Write(x[i,j],' ');
             Writeln;
         end;
         Readln;
    
         Writeln('Массив  Y!');
         for i:=1 to n do
         begin
             for j:=1 to m do
                 Write(y[i,j],' ');
             Writeln;
         end;
         Readln;
    End;
    
    ///////////////////////////////////////////////////////
    Function Poisk(x:mas; y:mas; Var PosXx:integer; Var PosXy:integer):integer;
    Begin
     ValX:=x[1,1];
         PosXx:=1;
         PosXy:=1;
         for i:=1 to n do
         begin
             for j:=1 to m do
                 if x[i,j]<=ValX then
                 begin
                      ValX:=x[i,j];
                      PosXx:=i;
                      PosXy:=j;
                 end;
         end;
         Writeln('Найден минимум в массиве Х!');
         Writeln('Значение минимума: ',ValX);
         Writeln('Строка  ',PosXx);
         Writeln('Столбец  ', PosXy);
         Readln;
    
         ValY:=y[1,1];
         PosYx:=1;
         PosYy:=1;
         for i:=1 to n do
         begin
             for j:=1 to m do
                 if y[i,j]<=ValY then
                 begin
                      ValY:=y[i,j];
                      PosYx:=i;
                      PosYy:=j;
                 end;
         end;
    
         Writeln('Найден минимум в массиве Y!');
         Writeln('Значение минимума:',ValY);
         Writeln('Строка  ',PosYx);
         Writeln('Столбец  ', PosYy);
         Readln;
    end;
    
    /////////////////////////////////////////////////////
    Function Zamena(Var x:mas; Var y:mas; PosXx,PosYx:integer):integer;
    Begin
         tmp:=x[PosXx,PosXy];
         x[PosXx,PosXy]:=y[PosYx,PosYy];
         y[PosYx,PosYy]:=tmp;
    End;
    
    
    
    Begin
    vvodim:=Vvod(x,y);
    iskat:=poisk(x,y,PosXx,PosXy);
    zamenit:=zamena(x,y,PosXx,PosYx);
         Writeln;
         Writeln('Массив Х!');
         for i:=1 to n do
         begin
             for j:=1 to m do
                 Write(x[i,j],' ');
             Writeln;
         end;
         Readln;
    
         Writeln('Массив Y!');
         for i:=1 to n do
         begin
             for j:=1 to m do
                 Write(y[i,j],' ');
             Writeln;
         end;
         Readln;
    End.
    
    Единственное что не помню, можно ли функции както по-другому вызвать.
     
    #1922 Syntaxys, 4 Dec 2009
    Last edited: 5 Dec 2009
    1 person likes this.
  3. mr_walker

    mr_walker Member

    Joined:
    9 Aug 2009
    Messages:
    41
    Likes Received:
    34
    Reputations:
    2
    На делфи!

    Основное задание:
    Написание ftp-клиента. Задача: Написать прикладную программу, которая способна выполнять базовые функции ftp-клиента, тобто вміє працювати з ftp-серверами. Функциональность : программа должна поддерживать следующие стандартные:
    *Соединение
    *Аутентификация
    *Навигация по директориях сервера (cd, dir/ls, и т.д.) *Получение и отправление файлов (в т.ч. і в passive mode)
    *Розсоединение
    Подсказка: большинство вышеуказаных функций можна исполнить,
    используя telnet.
    Фактически, нужно написать программу
    с интерфейсом, которая умеет получать\отправлять TCP поток по заданому порту. Иными словами - telnet.

    Задание(вариант3): Реализовать сохранение паролей, для удобства.



    ребята помогите плз... срочно надо... с меня причитается....
     
  4. GenTao

    GenTao New Member

    Joined:
    10 Oct 2009
    Messages:
    123
    Likes Received:
    2
    Reputations:
    -3
    Никто не знает чтоли)
     
  5. Weman

    Weman New Member

    Joined:
    5 Mar 2008
    Messages:
    11
    Likes Received:
    1
    Reputations:
    0

    Огромное спасибо!!!! Очень помогли!!
    Плюсы пока не могу ставить! Но вам Респект!!!! :)
     
  6. Fooog

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

    Joined:
    19 Sep 2008
    Messages:
    307
    Likes Received:
    170
    Reputations:
    12
    Твои плюсы отображаются только если ты состоишь в какой то группе!
     
  7. Syntaxys

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

    Joined:
    2 Sep 2007
    Messages:
    61
    Likes Received:
    10
    Reputations:
    0
    GenTao, на визе не пишу, но сподобными лабами советую выкладывать мат.обоснование или как минимум формулы.

    Weman, пожалуйста. Насчет плюсов не парься. Плюсы это хорошо конечно, но не в них суть.
     
    #1927 Syntaxys, 6 Dec 2009
    Last edited: 6 Dec 2009
  8. RealMarkus

    RealMarkus New Member

    Joined:
    27 Nov 2009
    Messages:
    31
    Likes Received:
    1
    Reputations:
    0
    Боюсь даже спрашивать , но никто в QBasic не разбирается ?
     
  9. qwert135

    qwert135 New Member

    Joined:
    22 Nov 2009
    Messages:
    53
    Likes Received:
    0
    Reputations:
    0
    народ.помогите написать прогу плиз.Вот задание (язык Паскаль):

    Разработать алгоритм и составить программу вычисления таблицы значений функции, заданной в виде разложения в ряд. Значение функции вычислять с точностью e>0, т.е. вычисление суммы членов ряда необходимо прекратить, когда абсолютная величина очередного члена ряда разложения окажется меньше e: | Aк | <e.
    При вычислении очередного члена целесообразно воспользоваться рекурентным выражением:
    Ак+1=Ск*Ак; к= 0, 1, 3, ...,
    где ак - некоторый к-ый член ряда; ак+1 - следующий к+1-ый член ряда; ск - коэффициент, определяемый номером к.
    При составлении программы необходимо по возможности воспользоваться операторами организации циклов WHILE, REPEAT, FOR.
    Границы интервала вычислений функций a и b, величина шага изменения аргумента h и точность вычисления функции e задаются при вводе. На печать выводятся номер по порядку, значение аргумента, соответствующие ему, значение функции и номер члена ряда, на котором закончилось вычисление значение функции, в форме таблицы:
    № Х f (x) № чл.р.
    1
    2
    3
    ...

    сама функция: f(x)=1/x+2*x[(1/(x^2+PI^2))+(1/x^2+4*PI^2))+...+1/(x^2+k^2*PI^2))...]

    Заранее спасибо! :)
     
    #1929 qwert135, 6 Dec 2009
    Last edited: 6 Dec 2009
  10. >>serhio<<

    >>serhio<< New Member

    Joined:
    10 Feb 2009
    Messages:
    40
    Likes Received:
    0
    Reputations:
    0
    Помогите разобраться на Pascale нужно реализовать две задачки !!!
    1.Определить наибольшее число идущих подряд положительных элементов в массиве А
    2.Найти min элемент одномерного массива описав процедуры ввода элементов массива, процедура нахождения min элемента массива.
     
  11. Syntaxys

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

    Joined:
    2 Sep 2007
    Messages:
    61
    Likes Received:
    10
    Reputations:
    0
    >>serhio<<
    Code:
    Program Neprogram;
    type
      mas=array[1..999]of integer;
    var
      i,kolvo,elementov,max_naideno:integer;
      m:mas;
    Procedure Vvod(Var m:Mas; Var kolvo:integer);   //ввод массива
              Var i:integer;
                  begin
                    randomize;
                       repeat
                             write('Vvedite kolvo elementov:');
                             readln(kolvo);
                       until kolvo>0;
                       for i:=1 to kolvo do
                          Begin
                                m[i]:=trunc((-9-9)*random+9);
                                write(m[i]);
                                write(' ');
                          end;
                  end;
    Begin
       vvod(m,kolvo);
       elementov:=1;               [COLOR=Teal]//считаем кол-во подряд идущих больше 0[/COLOR]
       max_naideno:=1;            [COLOR=Teal]//максимально подряд идущих больше 0[/COLOR]
       writeln;
              for i:=2 to kolvo do 
                  BEGIN
                  if m[i]>0 then
                   begin
                     elementov:=elementov+1;
                     [COLOR=Teal]//Строку ниже удали, если не хочешь чтоб отображалось сравнение элементов[/COLOR]
                     writeln('Element ',m[i-1], ' and element ', m[i],' = ', elementov);
                     end
                  else
                      begin
                         if  max_naideno<elementov then
                             begin
                               max_naideno:=elementov;
                               elementov:=1;
                             end;
                         elementov:=1;
                      end;
                  if (i=kolvo) and (max_naideno<elementov)then
                     max_naideno:=elementov;
                  end;
    writeln;
    writeln('Samaya dlinnaya  posledovatelnost > 0 :',max_naideno);
    end.
    
    
    Результат работы:

    Code:
    Vvedite kolvo elementov:20
    6 0 2 4 -1 5 5 -4 0 7 0 -6 5 1 0 8 2 -2 -4 -3 
    Element 0 and element 2 = 2
    Element 2 and element 4 = 3
    Element -1 and element 5 = 2
    Element 5 and element 5 = 3
    Element 0 and element 7 = 2
    Element -6 and element 5 = 2
    Element 5 and element 1 = 3
    Element 0 and element 8 = 2
    Element 8 and element 2 = 3
    
    Samaya dlinnaya  posledovatelnost > 0 :3
    

    №2

    Code:
    Program Neprogram;
    Type Mas= Array[1..100] of Integer;
    var i,kolvo: integer;
        x:mas;
    
    //[COLOR=Teal] Процедура ввода элементов[/COLOR]
    
    Procedure vvod(Var x:mas; Var kolvo: integer);
    Begin
    randomize;
       repeat
          write('Vvedite kolvo elementov:');
          readln(kolvo);
       until kolvo>0;
       for i:= 1 to kolvo do
              begin
                 	x[i]:= random(20)- 10;
                 	write(x[i],' ');
             	end;
    writeln;
    end;
    
    //[COLOR=Teal] Процедура поиска минимального элемента[/COLOR]
    
    Procedure poisk(x:mas; kolvo:integer);
    Var min:integer;
    Begin
       min:=x[1];
       for i:= 2 to kolvo do
           if x[i]<min then
              min:=x[i];
       writeln('Minimalnii element: ', min);
    End;
    
    Begin
    vvod(x,kolvo);
    poisk(x,kolvo);
    end.
    
    Результат работы:

    Code:
    Vvedite kolvo elementov:5
    -10 8 -5 -7 -4 
    Minimalnii element: -10
    
     
    #1931 Syntaxys, 6 Dec 2009
    Last edited: 6 Dec 2009
  12. Linkus

    Linkus Member

    Joined:
    20 Dec 2008
    Messages:
    168
    Likes Received:
    15
    Reputations:
    -1
    Code:
    const MasSize= 20;
    var A: Array[1..MasSize] of Integer;
    i: integer; cur,res: integer;
    begin
    randomize;
    
    {Инициализация массива случайными числами}
    for i:= 1 to MasSize do begin
    	A[i]:= random(20)- 10;
    	write(A[i],' ');
    	end;
    	
    writeln;
    
    {Обработка}
    for i:= 1 to MasSize do
    	begin
    	if A[i]> 0 then inc(cur) else cur:= 0;
    	if cur> res then res:= cur;
    	end;
    
    {Вывод результата}
    writeln(res);
    
    readln
    end.
     
    1 person likes this.
  13. qwert135

    qwert135 New Member

    Joined:
    22 Nov 2009
    Messages:
    53
    Likes Received:
    0
    Reputations:
    0
    Я так понял мою прогу врядле кто нибудь напишет:(
     
  14. Syntaxys

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

    Joined:
    2 Sep 2007
    Messages:
    61
    Likes Received:
    10
    Reputations:
    0
    qwert135, пиши алгоритм.
     
  15. Mozy

    Mozy Member

    Joined:
    15 Mar 2009
    Messages:
    52
    Likes Received:
    34
    Reputations:
    6
    Я года 4 назад писал
    Могу попробовать вспомнить
     
  16. mr_walker

    mr_walker Member

    Joined:
    9 Aug 2009
    Messages:
    41
    Likes Received:
    34
    Reputations:
    2
    Пост №1969
    никто не поможет?
     
  17. qwert135

    qwert135 New Member

    Joined:
    22 Nov 2009
    Messages:
    53
    Likes Received:
    0
    Reputations:
    0
    Вводим интервал от [а,b],вводим величину шага h, h=(b-a)/n,где n любое натуральное число и точность вычислений е(достаточно маленькое число) .Вычисление функции начинается с х=а и так с шагом h до b будут производиться вычисления функции x прин.[a,b], и до тех пор пока |Ak| не станет меньше е.Ak=1/(x^2+(k^2)*(pi^2)).Произведенные вычисления должны быть выведены в виде таблицы.Первый столбец- номер по порядку(t),второй-значение х,третий-f(x),четвертый-номер члена ряда [a,b].
     
    #1937 qwert135, 6 Dec 2009
    Last edited: 6 Dec 2009
  18. Syntaxys

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

    Joined:
    2 Sep 2007
    Messages:
    61
    Likes Received:
    10
    Reputations:
    0
    Примерно так?

    1.Вводим a,b
    2.Вводим n (целое, >0 ?)
    Вводим e (кол-во знаков после , ?)
    считается h=(b-a)/n
    3.х:=а
    4.От a дo b считаем ф-ию:
    если а>b, то завершаем подсчет.
    f(x)=уравненние ф-ии то какое?
    x[i,4]:=i
    x[i,2]:=x
    x[i,3]:=f(x)
    x[i,4]:=i
    х:=х+h
    если (1/(x^2+(k^2)*(pi^2)))<e, , то завершаем подсчет.
    5.Выводим таблицу.

    Не понял про Первый столбец- номер по порядку(t),четвертый-номер члена ряда [a,b].

    В чем отличие?
     
  19. Moodle

    Moodle New Member

    Joined:
    28 Nov 2009
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    С++ кто шарит сделайте пожалуйста, за мной не заржавеет:
    --------------------------------------------------------------------------------
    Вычислить значение функции в, развив функци. sh(x) в ряд Тейлора. Аргумент x изменяется от 0 до 3 с шагом 0,5. Определить погрешность
    y = { sh(x) +sh(x*x), 0<=x<=1
    y = {(sh*sh)*(x)/sh*(x+2), 1<x<=2
    ---------------------------------------------------------------------------------
    Нужно сделать что б показывало график функции.
    + Комментарий к каждому ряду.
    Крайние строки сегодня на вчера вообщем нужно по зарез.
     
    #1939 Moodle, 7 Dec 2009
    Last edited: 7 Dec 2009
  20. mr_walker

    mr_walker Member

    Joined:
    9 Aug 2009
    Messages:
    41
    Likes Received:
    34
    Reputations:
    2
    Пост №1969
    плииз... могу отблагодарить разве семизнаком и аватарками....
     
Thread Status:
Not open for further replies.