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

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

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

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

    Joined:
    9 Jun 2005
    Messages:
    774
    Likes Received:
    292
    Reputations:
    214
    си не поддерживает классы
     
  2. sebay

    sebay Member

    Joined:
    9 Mar 2009
    Messages:
    26
    Likes Received:
    22
    Reputations:
    0
    ладно тогда в С++
    Сформулирую конкретнее.Нужен СВОЙ строковый класс.С функциями сложения, вычитания и сравнения строк.
     
  3. kyoko

    kyoko Member

    Joined:
    17 Aug 2008
    Messages:
    137
    Likes Received:
    74
    Reputations:
    9
    помогите пожалуйста! завтра зачет
    на с++

    Code:
    Численные методы решения нелинейных дифференциальных уравнений.
    
    1. Индивидуальное задание:
    Решением дифференциального уравнения является неизвестная  функция x(t). Необходимо, используя численные методы решения ДУ, найти эту функцию. Полученное численное решение необходимо сопоставить с точным, чтобы исследовать зависимость величины локальной ошибки от величины шага интегрирования.
    Написать программу решения ДУ с помощью прямой (явной) формулы Эйлера.
    Написать программу решения ДУ с помощью обратной (неявной) формулы Эйлера.
    Написать программу решения ДУ с помощью формулы трапеций.
    Сопоставить результаты численного и точного решений ДУ на экране монитора.
    
    
    
    Дифференциальное уравнение (ДУ) 	x'(t)=-2x(t)	
    Решение ДУ	    x(t) =exp(-2t)	
     
  4. ss88

    ss88 Banned

    Joined:
    27 Nov 2008
    Messages:
    160
    Likes Received:
    44
    Reputations:
    5
    Насколько я помню 2-й курс, программки там небольшие, но довольно хитрые и надо быть очень внимательным. Так что вряд ли кто-то возьмется за это. Поищи типовые решения. Например, вот это почитай http://www.cyberforum.ru/cpp/thread12928.html это часть решения твоих проблем. ГУГЛИМ!!!
     
  5. ss88

    ss88 Banned

    Joined:
    27 Nov 2008
    Messages:
    160
    Likes Received:
    44
    Reputations:
    5
    гыгы, приходят в голову самые разгильдяйские мысли.... создай свой класс и делегируй все необходимые методы String. Наверное, не прокатит, зато посмеетесь вместе с преподом. А можно унаследовать String и переопределить лишь необходимые тебе методы либо что-то расширить - это распространенный подход, типовое решение Decorator. И это не будет противоречить твоему заданию, зато ты не будешь переживать о мелочах.... которые порою сводят с ума )))
     
    #1665 ss88, 16 Sep 2009
    Last edited: 16 Sep 2009
  6. SwitcH

    SwitcH Member

    Joined:
    12 Sep 2009
    Messages:
    0
    Likes Received:
    49
    Reputations:
    0
    попробуй так
    Code:
    #include <iostream.h>
    #include <math.h>
    #include <conio.h>
    
    
    int fac(int);
    void main()
    
    {
    	int x=1,k=0,E=6,f=0;
    	double a=0,n=0;
    	
    	for (k=0; a<E; k++)
    	{
    		 f =2*k+1;						
    		n=pow(-1,k)*pow(x,f)/fac(k)*f;  
    		
    		cout<< a <<endl;					
    		getch();
    		a+=n;							
    
    	}
    }
    
    
    int fac(int k )
    {
         if ( k==0 ) return 1;				
         else return k*fac( k-1);
    	 return 0;
    }
     
    4 people like this.
  7. Spider545

    Spider545 New Member

    Joined:
    10 Apr 2009
    Messages:
    26
    Likes Received:
    2
    Reputations:
    0
    Ребят, помогите пожалуйста, вот такую лабораторную надо сделать на С++6, пожаааалуйста!)
    В общем:
    -Разработать программу для шифрования текстов по алгоритму, указанному в соответствующем варианте. Исходный текст должен браться из текстового файла. Результат должен быть записан в текстовый файл.
    В программе "Шифр перестановкой". Размер блока и порядок перестановки символов указывается интерактивно при работе с программой.
    -Дан шифротекст и размер блока. Требуется получить открытый текст и ключ — последовательность перестановки символов (получить автоматически).
    Пожалуйста, пожалуйста, пожалуйста, помогитеееее!)
     
    #1667 Spider545, 20 Sep 2009
    Last edited: 20 Sep 2009
  8. Spider545

    Spider545 New Member

    Joined:
    10 Apr 2009
    Messages:
    26
    Likes Received:
    2
    Reputations:
    0
    аааа.......ну помогитеееее! HELP! HELP! HELP! пожаааааааалуйста!(
     
  9. seregkaz

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

    Joined:
    7 Aug 2009
    Messages:
    104
    Likes Received:
    49
    Reputations:
    15
  10. Fraud and dream

    Fraud and dream New Member

    Joined:
    21 Sep 2009
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Помогите, пожалуйста, написать лабу на assebler для компилятора TASM
    Задание:
    Пpоцедуpа получает пpи вызове начальный адpес массива из N стpок в pегистpах DS:DX и pаспечатывает каждую тpетью стpоку, начинающуюся с буквы 'f'
     
  11. Spider545

    Spider545 New Member

    Joined:
    10 Apr 2009
    Messages:
    26
    Likes Received:
    2
    Reputations:
    0
    Кто может помочь с криптографией???????????????????))))
     
    1 person likes this.
  12. geforse

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

    Joined:
    2 Mar 2008
    Messages:
    617
    Likes Received:
    290
    Reputations:
    1
    Составить структурированную программу для нахождения корня уравнения [​IMG] на отрезке [0-1] с абсолютной погрешностью [​IMG] методом Итерраций. В программе предусмотреть подсчёт и выдачу на печать количество итерраций необходимых для вычисления значения корня с заданной точностью.

    Программу нужно написать на Pascal

    Прошу помогите мне с кодом отвечающим за расчёт этого уравнения...хотя бы алгоритм как это уравнение решить методом итерраций :(
     
  13. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    Работа с памятью EEPROM ATmega16

    Задание1. Сложить два числа хранящиеся в ячейках памяти по адресам 120H и 121H, записать полученную сумму в ячейку памяти по адресу 122H. В области EEPROM, начиная с адреса 008Н , содержащей 32 байта, поместить константу ААН.

    ------------------

    асемблер
     
    1 person likes this.
  14. Dosia

    Dosia Member

    Joined:
    5 Jun 2009
    Messages:
    118
    Likes Received:
    81
    Reputations:
    6
    По итерациям что то вроде того:

    Code:
    program Iteraz;
    uses graph,crt;
    var
    a,b,x1,x,f1,f2,e:real;
    i,n:integer;
    
    function ArcSin ( X : Real ): Real;
    begin
    if X = 1.0 then { чтобы не было деления на 0 }
    ArcSin := Pi / 2.0
    else
    ArcSin := ArcTan ( X / Sqrt ( 1 - X * X ) );
    end;
    
    function f(tmpX:real):real;
    begin
    f:=sqrt(1*tmpX*tmpX)-ArcSin(tmpX);
    end;
    
    begin
    a:=0;
    b:=0.99;
    x1:=a;
    f1:=f(x1);
    e:=0.001;
    n:=round((b-a)/e);
    writeln('Metod iterazii');
    for i:=1 to n do begin
    x:=x1+(b-a)/n;
    f2:=f(x);
    if f1*f2<=0 then begin
    writeln('Done. X = ',(X+x1)/2:6:4);
    writeln('Kolichectvo iterazii = ',i);
    end;
    x1:=x;f1:=f2;
    end;
    
    readkey;
    end.
    
    Метод итераций.
    При решении нелинейного уравнения методом итераций воспользуемся записью уравнения в виде x=f(x). Задаются начальное значение аргумента x0 и точность e. Первое приближение решения x1 находим из выражения x1=f(x0), второе - x2=f(x1) и т.д. В общем случае i+1 приближение найдем по формуле xi+1 =f(xi). Указанную процедуру повторяем пока |f(xi)-xi| >eУсловие сходимости метода итераций |f'(x)<1| . Структограмма метода итераций:

    [​IMG]

    Не знаю корректно ли работает программа, но я в свое время её сдал ;D

    Если подставить в качестве верхнего предела 1, то будет переполнение.

    По сути все верно, так как если изменить интервал, то программа вообще не найдет решения.

    Другой вариант:

    Code:
    program ITERAT;
    uses crt;
    
    const max_iter=100;   {максимальное количество итераций}
    
    var
     i :integer;
     x,x0,eps,M:real;
    
    function ArcSin ( X : Real ): Real;
    begin
    if X = 1.0 then { чтобы не было деления на 0 }
    ArcSin := Pi / 2.0
    else
    ArcSin := ArcTan ( X / Sqrt ( 1 - X * X ) );
    end;
    
    
    function F(tmpX:real):real; {функция}
     begin
       f:=sqrt(1*tmpX*tmpX)-ArcSin(tmpX);
     end;
    
    begin {основная программа}
    clrscr;
    x:=0;
    x0:=0.99;
    eps:=0.001;
    
     i:=0;
     repeat
       M:=-(F(x+eps)-F(x-eps))/(2*eps); {коэффициент для улучшения сходимости}
       x0:=x;
       x:=x0+F(x0)/M; {сердце метода итераций}
       inc(i);
     until (abs(x-x0)<=eps)or(i>max_iter);
    
     if (abs(x-x0)<=eps) then writeln('Otvet: X= ',x:6:4,' naiden za ',i,' shagov')
     else writeln('Otvet ne naiden! Za ',max_iter:0,' shagov.');
    
    readkey;
    end.
    
    Программа взята отсюда и немного подредактирована.
     
    #1674 Dosia, 27 Sep 2009
    Last edited: 27 Sep 2009
    1 person likes this.
  15. G4bR1eL

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

    Joined:
    25 Mar 2008
    Messages:
    70
    Likes Received:
    3
    Reputations:
    0
    Задача на TurboP связанная с циклами.
    Найти среднее геометрическое всех целых положительных чисел меньше 10.
     
  16. Dosia

    Dosia Member

    Joined:
    5 Jun 2009
    Messages:
    118
    Likes Received:
    81
    Reputations:
    6
    Code:
    program SREDNEE_GEOMETRICHESKOE;
    
    var
    SrGeoM:real;
    i:integer;
    
    begin
    SrGeom:=1;
    for i:=1 to 9 do SrGeom:=SrGeom*i;
    srGeom:=exp(ln(srGeom)/i);
    writeln('Srednee geometricheskoe vseh zelih polozhitelnix chisel menshe 10 [1..9] = ',SrGeom:6:4);
    
    readln;
    end.
    Результат работы:
    Code:
    Srednee geometricheskoe vseh zelih polozhitelnix chisel menshe 10 [1..9] = 4.147
    2
    Проверил на калькуляторе - сходится.
     
    1 person likes this.
  17. Validol

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

    Joined:
    15 Dec 2006
    Messages:
    177
    Likes Received:
    57
    Reputations:
    7
    С++

    Ребят выручите.
     
  18. jecka3000

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

    Joined:
    15 Mar 2008
    Messages:
    360
    Likes Received:
    54
    Reputations:
    4
    Составить программу, вычисляющую значение переменной F по правилу:
    min(x,y), если а -цифра
    F=
    max(x,y), если а - не цифра
    Переменные x,y,F – вещественные, переменная a – символьная. Значение переменных x,y,a ввести с клавиатуры. На экран вывести значение переменных x,y,a и вычисленное значение переменной F.

    язык - с#
    ИСпользовать жедательно толко оператор if else.

    Заранее спасибо)
     
  19. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Code:
    Console.WriteLine("Enter x: ");
    int x = int.Parse(Console.ReadLine());
    Console.WriteLine("Enter y: ");
    int y = int.Parse(Console.ReadLine());
    Console.WriteLine("Enter a: ");
    char a = char.Parse(Console.ReadLine());
    int F = 0;
    if(Char.IsDigit(a))
    	{
    		F = x > y ? y : x;
    	}
    else if(Char.IsLetter(a))
    	{
    		F = x > y ? x : y;
    	}
    Console.WriteLine("\nX: {0} ; Y: {1} ; A: {2}\nF: {3}", x,y,a,F);
    Console.ReadLine();
    
     
    _________________________
    1 person likes this.
  20. ss88

    ss88 Banned

    Joined:
    27 Nov 2008
    Messages:
    160
    Likes Received:
    44
    Reputations:
    5
    Code:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    #define ABONENTS_COUNT_MAX 500
    #define LINE_MAX 256
    
    typedef struct {
    	char name[LINE_MAX];
    	char phone_number[LINE_MAX];
    	unsigned int installation_year; 
    } abonent;
    
    int abonents_compare (const void * a, const void * b) {
      return strcmp(((abonent*)a)->name,((abonent*)b)->name);
    }
    
    int main(int argc, char** argv){
    
    	FILE * text_file = fopen(argv[1],"rt");
        
        abonent abonents[ABONENTS_COUNT_MAX];
        
        int abonents_count = 0;
        
        char buf_name[LINE_MAX], buf_number[LINE_MAX];
        
        int buf_year;
        
    	while( fscanf(text_file,"%s %s %d", buf_name,buf_number,&buf_year)!= EOF){
    		strcpy(abonents[abonents_count].name,buf_name);
    		strcpy(abonents[abonents_count].phone_number,buf_number);
    		abonents[abonents_count++].installation_year = buf_year;
    	}
    	
    	fclose(text_file);
    	
       qsort (abonents, abonents_count, sizeof(abonent), abonents_compare);
       FILE * struct_file = fopen("base.txt","w");	
       fwrite(abonents,sizeof(abonent),abonents_count,struct_file);
       fclose(struct_file);
    	
    	char name[LINE_MAX];
    	while(1){
    		printf("Enter the name: ");
    		scanf("%s",name);
    		for(int i=0; i<abonents_count; i++)
    			if(strcmp(abonents[i].name,name)==0)
    				printf("%s\n",abonents[i].phone_number);
      }
    	
    	return 0;
    }
    
    
    
    Делов-то, это про телефоны, второе делай по аналогии. Перед тем, как идти сдавать, разберись, что в проге происходит. Она выполняет все, что от тебя требовалось.

    Текстовый файл в таком формате
     
    #1680 ss88, 28 Sep 2009
    Last edited: 28 Sep 2009
    1 person likes this.
Thread Status:
Not open for further replies.