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

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

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

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

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    итак.. fun(n) - какая-то штука, которая использует fun(n-1).
    посмотрим:
    fun(0)=1;
    fun(1)=1*1-2=-1
    fun(2)=2*(-1)-2=-4
    fun(3)=3*(-4)-2=-14
    и т.д.
    вот и посчитали)

    а вообще-то, конкретно тут, нам задана рекуррента
    [​IMG]
    которую можно и так решить

    //не знаю, сколько проживёт ссылка на картинку - прямая такая: http://www.d120.de/cgi-bin/mathtex.cgi?%5Cleft%5C{%5Cbegin{array}{l}x_0%20=%201%5C%5C%20%20x_n%20=n%5Ccdot%20x_{n-1}-2%5Cend{array}%5Cright.
     
  2. oOoOoOo

    oOoOoOo Banned

    Joined:
    23 May 2008
    Messages:
    39
    Likes Received:
    45
    Reputations:
    -7
    АП! Срочно просто надо! Моя задачка на пост выше
     
  3. s0l_ir0n

    s0l_ir0n Active Member

    Joined:
    14 Mar 2009
    Messages:
    399
    Likes Received:
    144
    Reputations:
    18
    Code:
    program Project1;
    
    const
    _F:array[1..7] of integer=(16,19,21,20,12,31,29); //Исходные данные
    var
    f,g:textfile; //файлы в которые будем писать
    i:integer; // счетчик
    begin
    Assign(f,'f.dat');  //Открыть файл f
    Rewrite(f); //на запись
    for i:=1 to 7 do // 7 раз повторить
    Writeln(f,_F[i]); //записать в файл f, значение массива _F с индексом i
    CloseFile(f); //Закрыть файл
    
    Assign(g,'g.dat'); //Открыть файл g
    Rewrite(g); //на запись
    for i:=1 to 7 do begin  // 7 раз повторить-----------------------------------------------|
    if _F[i] mod 5 = 1 //если при делении значения массива _F с индеком i на 5, остаток = 1  |
    Then Writeln(g,_F[i]); //тогда записать это значение в файл g                            |
    if _F[i] mod 5 = 4 //если при делении значения массива _F с индеком i на 5, остаток = 1  |
    Then Writeln(g,_F[i]); //тогда записать это значение в файл g                            |
    end; // вот тут повтор заканчивается-----------------------------------------------------|
    CloseFile(g); //Закрыть файл g
    end.
    
     
    1 person likes this.
  4. snAKe33

    snAKe33 Active Member

    Joined:
    10 Feb 2009
    Messages:
    13
    Likes Received:
    169
    Reputations:
    24
    В общем в инсте проблема у меня, надо сдать лабу и она на делфи, и его мы должны сами изучить
    Вот хочу попросить что бы кто-нибудь смог написать программку по нему..
    Она должна быть простенькой т.к нам дали делфи на самообучение.
    *******************
    Вычислить площадь плоской фигуры, заключенной между дугами кривых: y(x) = -Ln(x) и y(x) = R-x
    При каком значении R площадь этой фигуры не превышает единицы
     
    19 people like this.
  5. frostJKE

    frostJKE New Member

    Joined:
    15 May 2008
    Messages:
    9
    Likes Received:
    1
    Reputations:
    0
    Подскажите пожалуйста что здесть не так?

    PHP:
    #include <graphics.h> //Подключение библиотек
    #include <stdlib.h>
    #include <stdio.h>
    #include <conio.h>
    #include <math.h>
    #include <dos.h>
    #define mash 40 //Масштаб - количество пикселей равное числу 0.2
    #define PI 3.141592653 //Первая математическая константа(Число Пи(^_^))
    #define angle5 0.0872665 //Пять градусов в радианах
    #define step 0.0001  //Шаг перебора значений переменной t, при маленьких значениях увеличивается время работы, при больших целостность графика теряется


    double A,B,C,D,x1,y1,x2,y2,t,anglex=0.0;
    int x,y,maxx,maxy,pmsh=0,sdx=0,sdy=0,g=0;

    void drawgraph();

    void drawset(){   //Начало функции построения системы координат
    int i;
    clrscr();  //очистка текстового экрана (Возвращение каретки в начало)
    setfillstyle(SOLID_FILL0);
    bar(0,0,maxx,maxy);  //Очистка графического экрана
    printf("\n\n\n  y=%.2lf*(exp(x/2)+exp(-x/2))/2",A);              //Zamenit' na viravnivanie po pravoi stenke!!!
    if(A>0.0)
    printf("\n  max - none\n  min = %.2lf",A);
    if(
    A<0.0)
    printf("\n  max = 0.0\n  min = 0.0");
    if(
    A==0.0)
    printf("\n  max = %.2lf\n  min - none",A);
    //printf("\n\t\t\t\t\t     y=sin(%.2lf+%.2lf*t)*cos(%.2lf+t)",A,B,D);

    settextstyle(SMALL_FONTHORIZ_DIR4);    //Выбор шрифта
    setlinestyle(SOLID_LINE11); //Выбор пунктирной линии

    if(g%2==0){

    line(0,maxy/2,maxx,maxy/2);   //Построение линий координатной сетки
    line(maxx/2,0,maxx/2,maxy);


    moveto(maxx/2+5,maxy/2+5);
    outtext("0");
    outtextxy(maxx/2-10,5,"Y");
    outtextxy(maxx-14,maxy/2-14,"X");


    for(
    i=1;(i*mash<maxx/2)||(i*(mash+pmsh)<maxy/2);i++){  //Цикл построение шкалы

       
    line(maxx/2+i*(mash+pmsh),maxy/2+5,maxx/2+i*(mash+pmsh),maxy/2-5); //Деления на положительной части шкалы абсцисс
       
    line(maxx/2-i*(mash+pmsh),maxy/2+5,maxx/2-i*(mash+pmsh),maxy/2-5); //Деления на отрицательной части шкалы абсцисс

       
    line(maxx/2-5,maxy/2-i*(mash+pmsh),maxx/2+5,maxy/2-i*(mash+pmsh));  //Деления на положительной части шкалы ординат
       
    line(maxx/2-5,maxy/2+i*(mash+pmsh),maxx/2+5,maxy/2+i*(mash+pmsh));  //Деления на отрицательной части шкалы ординат


        
    moveto(maxx/2+i*(mash+pmsh)+5,maxy/2+5); //Нанесение значений шкалы х
        
    switch(i){
         case 
    1outtext("1");break;
         case 
    2outtext("2");break;
         case 
    3outtext("3");break;
         case 
    4outtext("4");break;
         case 
    5outtext("5");break;
         case 
    6outtext("6");break;
         case 
    7outtext("7");break;
         case 
    8outtext("8");break;
         }

        
    moveto(maxx/2-i*(mash+pmsh)+5,maxy/2+5);  //Нанесение значений шкалы х
        
    switch(i){
         case 
    1outtext("-1");break;
         case 
    2outtext("-2");break;
         case 
    3outtext("-3");break;
         case 
    4outtext("-4");break;
         case 
    5outtext("-5");break;
         case 
    6outtext("-6");break;
         case 
    7outtext("-7");break;
         case 
    8outtext("-8");break;
         }

        
    moveto(maxx/2+5,maxy/2-1+i*(mash+pmsh));  //Нанесение значений шкалы у
        
    switch (i){
         case  
    1outtext("-1");break;
         case  
    2outtext("-2");break;
         case  
    3outtext("-3");break;
         case  
    4outtext("-4");break;
         case  
    5outtext("-5");break;
         case  
    6outtext("-6");break;
         case  
    7outtext("-7");break;
         case  
    8outtext("-8");break;
         case  
    9outtext("-9");break;
         case 
    10outtext("-10");break;
         case 
    11outtext("-11");break;
         }

        
    moveto(maxx/2+6,maxy/2+1-i*(mash+pmsh)); //Нанесение значений шкалы у
        
    switch (i){
         case  
    1outtext("1");break;
         case  
    2outtext("2");break;
         case  
    3outtext("3");break;
         case  
    4outtext("4");break;
         case  
    5outtext("5");break;
         case  
    6outtext("6");break;
         case  
    7outtext("7");break;
         case  
    8outtext("8");break;
         case  
    9outtext("9");break;
         case 
    10outtext("10");break;
         case 
    11outtext("11");break;
         }
       } 
    //Конец цикла
    }
    drawgraph();

    //Конец функции


    void drawgraph(){ //Функция построения графика

    t=maxx/(2*(mash+pmsh));

    for(
    x1=-t;x1<=t;x1+=step){ //Перебор ОДЗ t

    y1=A*(exp(-x1/2)+exp(x1/2))/2//Получение координаты х

    x2=x1*cos(anglex)-y1*sin(anglex); //Смещение координат в случае
    y2=y1*cos(anglex)+x1*sin(anglex); //Поворота графика на угол anglex
    =x2*(mash+pmsh)+sdx//Координата х с учетом возможного сдвига и масштаба
    =-y2*(mash+pmsh)+sdy//Координата у с учетом возможного сдвига ,масштаба и добавочного масштаба для у

    putpixel(maxx/2+x,maxy/2+y,5); //Нанесение полученной точки на экран
    }
    //drawset(); //Вызов функции drawset
    //Конец функции построения графика



    void main(){ //Основная функция

       
    char ci;
       
    int gdriver DETECTgmodeerrorcode;

       
    clrscr();
       
    printf("\nGraffic y=A*(exp(x/2)+exp(-x/2))/2\n");
       
    printf("\nEnter A:");
       while(
    scanf("%lf", &A)!=1){ //Ввод коэффициентов графика
         
    printf("\nError! Re-enter please> ");
         
    ci='c'; while((ci!='\n') && (ci!=EOF)) ci=getchar();}
       
    clrscr();
       
    printf("\nControl:\n\nQ - quit\nG - hide set\n\nA - dicrease \"y\" scale\nS - increase \"y\" scale\nD - reset \"y\" scale\n\nZ - rotate -5gr\nX - rotate  5gr\nC - reset rotate angle");
       
    printf("\n\n2 - y-15pix\n8 - y+15pix\n4 - x-15pix\n6 - x+15pix\n5 - reset");
       
    getch();


       
    initgraph(&gdriver, &gmode"C:\\BORLANDC\\BGI"); //Инициализация графического режима
       
    errorcode graphresult();
       if (
    errorcode != grOk){
          
    printf("Graphics error: %s\n"grapherrormsg(errorcode)); //Вывод сооьветствующего сообщения в случае ошибки инициализации графического режима
          
    printf("Press any key to halt:");
          
    getch();
          exit(
    1);}

       
    maxx=getmaxx();//Получение разрешения экрана
       
    maxy=getmaxy();

       while(
    1){ //Вывод графика и ожидание действий
       
    drawset();
       
    ci=getch();
       if(
    ci=='q') break;
       if(
    ci=='g'g++;
       if(
    ci=='x'anglex+=angle5;
       if(
    ci=='z'anglex-=angle5;
       if(
    ci=='a'pmsh-=(mash+pmsh)/10;
       if(
    ci=='s'pmsh+=(mash+pmsh)/10;
       if(
    ci=='c'anglex=0;
       if(
    ci=='d'pmsh=0;
       if(
    ci== 50sdy+=15;
       if(
    ci== 52sdx-=15;
       if(
    ci== 53sdy=sdx=0;
       if(
    ci== 54sdx+=15;
       if(
    ci== 56sdy-=15;}

       
    closegraph(); //Закрытие видеорежима
    //Конец программы
    Помогите, заранее благодарен! Спасибо!
     
    1 person likes this.
  6. Si{R}ius

    Si{R}ius Member

    Joined:
    13 Nov 2008
    Messages:
    95
    Likes Received:
    36
    Reputations:
    0
    Такая задача: (Паскаль)

    Два прямоугольника со сторонами, непараллельными осям экрана, заданы координатами трех последовательных вершин. Выяснить, находится ли какой-нибудь из прямоугольников в средине другого..

    Заранее благодарен за помощь!
     
    1 person likes this.
  7. MRAK9

    MRAK9 Member

    Joined:
    29 Jul 2007
    Messages:
    115
    Likes Received:
    26
    Reputations:
    0
    [pascal]

    собственно мессага: ввод массива чисел(размер не менее 15), ввод числа и поиск его в массиве, если значений несколько-опр. их количество и порядковые номера, если значений нет-поиск ближайшего большего

    заранее спасибо( + за мной не заржавеет ;) )
     
  8. TR0J@N

    TR0J@N Elder - Старейшина

    Joined:
    30 Mar 2007
    Messages:
    105
    Likes Received:
    58
    Reputations:
    13
    C++

    Ну очень надо) Язык C++ (консольки)
    В большинстве лабораторок прилогается блок схема и программа на бейсике!

    1.[​IMG]

    2.[​IMG] [​IMG] [​IMG]

    3.[​IMG]

    4.[​IMG] [​IMG]

    5. [​IMG]

    6.[​IMG]

    7.[​IMG]

    Всё в одном архиве
     
    #1348 TR0J@N, 3 May 2009
    Last edited: 3 May 2009
    1 person likes this.
  9. Flame of Soul

    Flame of Soul Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    185
    Likes Received:
    146
    Reputations:
    45
    [​IMG]


    собственно код: (он на дельфи но переделаешь в лёт :D )
    PHP:
    program Project1;
    uses
      SysUtils
    ;
    var
      
    s: array [0..14of integer;
      
    i,x,j,binteger;
    begin
      writeln
    ('********************************'+#10+
              
    'Vvedie element`i massiva:');
      for 
    i:=0 to 14 do
      
    begin
        read
    (s[i]);
      
    end;
      
    writeln('________________________________' #10 +
              
    'Massiv zapolnen do 15 znachenii' #10 +
              
    'Vvedite chiclo poiska v massive');
      
    read(x);
      
    writeln('################################' #10);
      
    b:=0;
      for 
    i:=0 to 14 do
      
    begin
        
    if s[i]=x then
        begin
          writeln
    ('> ='+IntToStr(i));
          
    b:=b+1;
        
    end;
      
    end;
      if 
    b>0 then
      begin
        writeln
    ('Odinakovih elementov:' IntToStr(b));
      
    end
      
    else
      
    begin
        x
    :=s[0];
        for 
    i:=1 to 14 do
        
    begin
          
    if s[i]>x then
          begin
            x
    :=s[i];
            
    b:=i;
          
    end;
        
    end;
        
    writeln('Odinakovih elementov nety:' #10 +
                
    'Samii Bolshoi Element:' IntToStr(x) + #10 +
                
    'On stoit v massive pod nomerom: '+IntToStr(b));
      
    end;
      
    read(x);
    end.

    i,x,j,b: integer;
    -Не обращай на j внимание, просто мега обфускация.
     
    #1349 Flame of Soul, 3 May 2009
    Last edited: 3 May 2009
    1 person likes this.
  10. fker

    fker Member

    Joined:
    26 Nov 2008
    Messages:
    135
    Likes Received:
    64
    Reputations:
    -1
    2 TR0J@N
    2.[​IMG] [​IMG] [​IMG]
    Code:
    #include<stdio.h>
    #include<conio.h>
    #include<math.h>
    void main()
    {
    clrscr();
    float A,B,C,S,G;
    float G1,P,R,R1;
     printf("Input A,B,S -> ");
     scanf("%f%f%f",&A,&B,&S);
     G=2*S/(A*B);
     G1=sqrt(1-G*G);
     C=sqrt(A*A+B*B-2*A*B*G1);
     P=A+B+C;
     R=A*B*C/(4*S);
     R1=2*S/P;
     printf(" P = %.2f\n R = %.2f\n R1 = %.2f\n",P,R,R1);
    getch();
    }
    3.[​IMG]
    Code:
    #include<stdio.h>
    #include<conio.h>
    #include<math.h>
    void main()
    {
    clrscr();
    float a,b,c,d,y,x;
    printf("BBegu c, d, b, x -> ");
    scanf("%f%f%f%f",&c,&d,&b,&x);
    a=c*d/(c*c-d*d);
    printf("%f\n",a);
    if(a<5)
      y=a+b/sqrt(25+x*x);
    else
      y=b*cos(a);
    printf("y = %.2f\n",y);
    getch();
    }
     
    #1350 fker, 4 May 2009
    Last edited: 5 May 2009
  11. fker

    fker Member

    Joined:
    26 Nov 2008
    Messages:
    135
    Likes Received:
    64
    Reputations:
    -1
    продолжение..
    4.[​IMG] [​IMG]
    Рис. 6.
    Code:
    #include<stdio.h>
    #include<conio.h>
    #include<math.h>
    void main()
    {
    clrscr();
    int x,n,i,f=1;
    float e=1;
    printf("BBegu X u N -> ");
    scanf("%d%d",&x,&n);
    for(i=1; i<=n; i++){
       f*=i;
       e+=pow(x,i)/f;
      // printf("%f  %d %f\n",e,f,pow(x,i));
       }
    printf("e = %.2f\n",e);
    getch();
    }
    Рис. 6.
    Code:
    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    int main()
    {
    clrscr();
    int i,j,x,y,min;
    int a[10][10];
    int n,m;
    
    printf("BBegu pa3mep maccuBa -> ");
    scanf("%d%d",&n,&m);
    
    for(i=0; i<n; i++){
       for(j=0; j<m; j++){
          a[i][j]=rand()%100;
          printf("%3d ",a[i][j]);
          }
       printf("\n");
       }
    min=a[0][0];
    for(i=0; i<n; i++)
       for(j=1; j<m; j++)
          if(a[i][j]<min){
             min=a[i][j];
             x=i;
             y=j;
             }
    printf("\nMin - %d (%d cTpoka, %d sTolbec)\n",min,x+1,y+1);
    getch();
    return 0;
    }
    ps:
    в с++ если что сам переделаешь, там только надо заменить printf и scanf.
     
    1 person likes this.
  12. Ftopky!

    Ftopky! Member

    Joined:
    25 Mar 2009
    Messages:
    0
    Likes Received:
    13
    Reputations:
    0
    Помогите пожалуйста! язык Delphi

    Задание: Решить поставленные задачи двумя способами . с применением рекурсии и без
    нее.

    1. Найти наибольший общий делитель чисел M и N. Используйте теорему
    Эйлера: Если M делится на N, то НОД (N, M)=N, иначе НОД (N, M)=
    =НОД (M mod N, N)
     
    #1352 Ftopky!, 4 May 2009
    Last edited: 4 May 2009
  13. Si{R}ius

    Si{R}ius Member

    Joined:
    13 Nov 2008
    Messages:
    95
    Likes Received:
    36
    Reputations:
    0
    Помогите мне с задачей на паскале!

    Два прямоугольника со сторонами, непараллельными осям экрана, заданы координатами трех последовательных вершин. Выяснить, находится ли какой-нибудь из прямоугольников в средине другого и вывести ответ..
     
  14. Qrty

    Qrty New Member

    Joined:
    3 May 2009
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Задача на Паскале

    Помагите пожалуйста решить эти задачки:

    1) Дано натуральное число n и целые числа a1,a2,.....,an. Выяснить, верно ли, что количество отрицательных чисел ai, превышают x.

    2) Дано предложение. Напечатать все его различные слова

    3) Поле шахматной доски определяеться парой натуральных чисел, кажде из каторых не превосходит 8. первое число номер вертикали (при счете слева направо ), второе - номер горизантали (при счете снизу вверх ). Дано натуральное числа а,b,c,d,e,f каждое из каторых не превосходит 8.
    На поле (a,b) расположена белая фигура, на поле (c,d)- черная фигура.Определить может ли белая фигура пойти на поле (e,f) не попав при этом под удар черной фигуры.
    Рассмотреть следущий вариант сочетаний белой и черной фигуры
    Слон и ферзь
     
  15. SHAXID

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

    Joined:
    13 Dec 2007
    Messages:
    24
    Likes Received:
    17
    Reputations:
    -6
    Помогите, пожалуйста, разработать программу нахождения значения определенного интеграла методом Симпсона (на паскале).
    Вот, собственно, функция для интегрирования:

    y=log3(внизу)х (х+х^2)^-1 .


    Исходные данные: интервал интегрирования, количество разбиений отрезка.
    Результат нужно получить такой: значение интеграла, график заданной функции.

    Решение интерпретировать графически (автоматическое масштабирование, название графика, метки на осях и обозначение осей).
    Также нужно предусмотреть переключение между графическим и текстовым окнами для ввода исходной информации и вывода результатов интегрирования и графической интерпретации. И предусмотреть проверку корректности данных.
     
  16. TR0J@N

    TR0J@N Elder - Старейшина

    Joined:
    30 Mar 2007
    Messages:
    105
    Likes Received:
    58
    Reputations:
    13
    C++

    Плиз укаво есть время добейте задания из поста #1383

    Задания номер: 1,5,6,7
     
  17. MRAK9

    MRAK9 Member

    Joined:
    29 Jul 2007
    Messages:
    115
    Likes Received:
    26
    Reputations:
    0
    Flame of Soul
    + поставил, хоть и сделал немного не то...(следовало найти не самое большое значение, а БЛИЖАЙШЕЕ большое)
     
  18. schwarze

    schwarze Member

    Joined:
    1 Dec 2008
    Messages:
    64
    Likes Received:
    38
    Reputations:
    5
    C++
    Разработать способ сбора и сортировки сведедний: "Аптченый киоск".
    - ФИО продавца
    - Объем продажи лекарств за день
    - Объем продажи лекарств по рецептам за день
    - Объем продажи лекарств без рецептов за день
    - Объем продажи лекарств по льготным ценам за день
    - Общая выручка за день.
     
  19. frostJKE

    frostJKE New Member

    Joined:
    15 May 2008
    Messages:
    9
    Likes Received:
    1
    Reputations:
    0
    Помогите пожалуйста с лабораторной по структурам желательно на языке С++.

    Вот собственно само задание:
    Сведения об экзамене содержат следующие данные: дисциплину (программирование, алгебра, история, геометрия), дату сдачи экзамена (год, месяц, день), сведения о студенте (факультет, курс, группа, номер в журнале) и экзаменационную оценку.
    Задан набор сведений об экзаменах, сданных студентами за последние 2 года; в них факультет и предмет кодируются первыми буквами названия. Определить количество нуспевающих по программированию на экономическом факультете среди студентов первого курса, сдававших экзамены зимой 1995 года, вывести на экран их группу и номер в журнале.

    Буду очень признателен за вашу помощь!
     
  20. TOLIA

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

    Joined:
    20 Aug 2007
    Messages:
    54
    Likes Received:
    9
    Reputations:
    -11
    Нужно написать программу + алгоритм(если сможете)

    Сформировать массивы W, X, Y, Z из 12 элементов каждый. Вывести их на экран. Вычислить и вывести на экран значение:

    ___P(Y) + P(X)
    S = _________
    ___S(W) + S(Z)


    где P(X), P(Y) - произведения положительных элементов массивов Х и У соответственно; S(W), S(Z) - суммы положительных элементов массивов
    W и Z соотвественно. Использовать подпрограммы
     
Thread Status:
Not open for further replies.