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

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

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

    dedmazay New Member

    Joined:
    14 Dec 2011
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Помогите завершить программу в ассемблере, которая возводит любое число в любую степень. Нужна помошь с отрицательным основателем и показателем и при вводе не чисел. Вот до чего я дошел.

    Code:
    .MODEL SMALL
    .STACK 100h
    .DATA
    basе      dw ?
    exp     dw ?
    res    dw ?
    survey   dw ?
    
    include macros.mac
    jumps
    .code
    
    
    call     expn 
    expn  proc
              dec cx
              mov bx, ax           
    M1:      imul bx
              jo M2
              loop  M1
       
    M2:         ret
              endp
          
    START:	mov ax,@DATA
    	        mov ds,ax
    
    prog: 
            print "base: "        	
    	nl
            readZ base
    	mov  ax, base
    	cmp al, 9
    	ja prog
    	cmp ah, 9
    	ja prog
    	print "exponent: "
    	nl
    	readZ exp
    	mov cx, exp
    	cmp cx, 0
    	je result1
    	cmp cx, 1
    	je result2
    	call expn
    	mov res, ax
    	print "result: "
            writeZ res
            nl
    prompt:   
            print "again(y/n): "
            reads survey
            cmp survey, 59h 
    	je prog
    	cmp survey, 79h
    	je prog
    	cmp survey, 6eh
    	jmp end
    	cmp survey, 4eh
    	jmp end
    result1:
            print "result: 1"
            jmp prompt
    result2:    
    	print "result: "
    	writeZ base        	
    	jmp prompt
    	
    end:	
           mov ah,4Ch	
           int 21h
         end start
     
  2. DooD

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

    Joined:
    30 Sep 2010
    Messages:
    1,168
    Likes Received:
    442
    Reputations:
    288
    не все понял что надо.про не числа скажу так:
    проверяй от 0 до 9 например
    cmp al,0
    jb m1
    cmp al,9
    ja m2
    функцию 08h если не ошибаюсь.
    короч примерно так будет:
    Code:
    mov ah,08h 
    int 21h
    cmp al,0
    jb m1
    cmp al,9
    ja m2
    а вообще юзай сопроцессор
     
    #3842 DooD, 4 Jan 2012
    Last edited: 4 Jan 2012
  3. Тилль

    Тилль Elder - Старейшина

    Joined:
    26 May 2006
    Messages:
    44
    Likes Received:
    3
    Reputations:
    0
    Помогите решить пару лаб. на C#. Стукните в личку или аську
     
  4. xsergeychicx

    xsergeychicx New Member

    Joined:
    20 Oct 2011
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    с++

    Данные об автомобиле состоят из его марки, номера и фамилии владельца. Есть информационный массив f, в котором данные о нескольких автомобилях. найти:
    а) фамилии владельцев и номера авто данной марки;
    б) количество авто каждой марки.

    ВОТ МОЙ КОД!


    Но как найти количество авто каждой марки????????

    #include <conio.h>
    #include <iostream.h>
    #include <string.h>
    main()
    {
    struct avto {
    char marka[20];
    int nomer;
    char name[50];
    } *a;
    int n;
    cout<<"Vvedite kolichestvo avtomobilei:\n";
    cin >> n;
    a=new avto [n];

    for (int i=0;i<n;i++)
    {cout<<"Marka / Nomer / Familiya \n";
    cin>>a.marka>>a.nomer>>a.name;}
    cout<<endl;
    for (int i=0;i<n;i++) {
    cout<<"Familiya: "<<a.name<<". ";
    cout<<"Marka avto: "<<a.marka<<". ";
    cout<<"Nomer: "<<a.nomer<<endl;
    }

    getch();
    }
     
    #3844 xsergeychicx, 9 Jan 2012
    Last edited: 9 Jan 2012
  5. wildfires

    wildfires New Member

    Joined:
    2 Dec 2011
    Messages:
    16
    Likes Received:
    0
    Reputations:
    0
    Ребят, пожалуйста помогите решить задачу в с++.
    Задание
    Заранее спасибо.
     
  6. Spot

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

    Joined:
    1 Mar 2007
    Messages:
    461
    Likes Received:
    38
    Reputations:
    1



    Например 2 первых варианта, что пришли в голову варианта:
    1.Использовать регулярные выражения
    ссыль: http://msdn.microsoft.com/en-us/library/aa332122(v=vs.71).aspx
    внизу пример для c++ ,а так же найдёшь много примеров если загуглить "регулярные выражения c++".
    2.

    Code:
     char search [20];
    cout<<"Введите марку поиска: ";
    cin>>search;
    int count = 0;
    for(int s = 0; s < n;s++)
    {
    ...
    //тут тупо сравниваешь марку автомобиля в массиве n под индексом s и сравниваешь с введенной пользоваетелем маркой. Если есть  совпадение - count++;  
    
    }
    
     
  7. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    какие еще регулярные выражения?

    Auto.hpp
    Code:
    #ifndef AUTO_HPP
    #define AUTO_HPP
    
    #include <string>
    
    class Auto
    {
    public:
    	Auto(const std::string &carBrand, const std::string &secondName, const unsigned int number);
    
    	const std::string getAutoBrand() const;
    	const std::string getSecondName() const;
    	const unsigned int getCarNumber() const;
    
    private:
    	std::string  carBrand;
    	std::string  secondName;
    	unsigned int carNumber;
    };
    
    #endif
    
    Auto.cpp
    Code:
    #include <string>
    #include "Auto.hpp"
    
    Auto::Auto(const std::string &carBrand, const std::string &secondName, const unsigned int number)
    {
    	this->carBrand   = carBrand;
    	this->secondName = secondName;
    	this->carNumber  = number;
    }
    
    const std::string Auto::getAutoBrand() const
    {
    	return carBrand;
    }
    
    const std::string Auto::getSecondName() const
    {
    	return secondName;
    }
    
    const unsigned int Auto::getCarNumber() const
    {
    	return carNumber;
    }
    
    main.cpp
    Code:
    #include <iostream>
    #include <string>
    #include <vector>
    #include "Auto.hpp"
    
    int main(int argc, char *argv[])
    {
    	std::vector<Auto> information;
    
    	information.push_back(Auto("BMW"     , "Ivanov"  , 6666));
    	information.push_back(Auto("Toyota"  , "Petrov"  , 6666));
    	information.push_back(Auto("BMW"     , "Sidorov" , 6666));
    	information.push_back(Auto("Toyota"  , "Herov"   , 6666));
    
    	std::string autoBrand;
    	std::cout << "Enter an auto brand: ";
    	std::getline(std::cin, autoBrand);
    
    	for(auto it = information.begin(); it != information.end(); ++it)
    	{
    		if(it->getAutoBrand() == autoBrand)
    		{
    			std::cout << "Second name: " << it->getSecondName() << std::endl;
    			std::cout << "Auto number: " << it->getCarNumber()  << std::endl;
    		}
    	}
    
    	return 0;
    }
    
    второй пункт стало уже влом делать. но там тоже просто, сам справишься. используй count_if();
     
    1 person likes this.
  8. SuckMyKeD

    SuckMyKeD New Member

    Joined:
    19 Oct 2010
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    C#

    Ребят, нужно написать Графический интерфейс для работы с базой данных access. Кнопки должны быть сделаны не с помощью навигационной панели. Помогите, очень надо.
     
  9. Тилль

    Тилль Elder - Старейшина

    Joined:
    26 May 2006
    Messages:
    44
    Likes Received:
    3
    Reputations:
    0
    Может кто знает как это реализовать?

    Описать класс «множество», позволяющий выполнять основные операции: добавление и удаление элемента, пересечение, объединение и разность множеств.
    Написать программу, демонстрирующую все разработанные элементы класса.
     
  10. ШМЕЛЕ

    ШМЕЛЕ New Member

    Joined:
    14 Feb 2011
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Решение уравнения методом дихтомии
    function main(fx:fn; a,b,e:real):real;
    var x,y,z:real;
    begin
    while Abs(a-b)>e do
    begin
    x:=fx(0.1);
    y:=fx((a+b)/2);
    z:=fx(1)
    if y>0 then
    if x>0 then a:=(a+b)/2 else b:=(a+b)/2
    else
    if x<0 then a:=(a+b)/2 else b:=(a+b)/2
    end;
    main:=y;
    end;
    Нa подчёркнутом месте выдает ошибки Missing operator or semicolon, гляньте чего не так :rolleyes: ?
     
  11. DooD

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

    Joined:
    30 Sep 2010
    Messages:
    1,168
    Likes Received:
    442
    Reputations:
    288
    точка с запятой после z:=fx(1)
    я окуевший.
     
    #3851 DooD, 12 Jan 2012
    Last edited: 12 Jan 2012
  12. XaKeR-SpAm

    XaKeR-SpAm New Member

    Joined:
    18 Jun 2009
    Messages:
    17
    Likes Received:
    2
    Reputations:
    0
    помогите написать 2 функции на Си... долно очень мучаюсь не получается
    функция принимает строку разделителей, строку элементов, исходное слово.
    должна вернуть измененную строку:
    после слов, содержащих четное количество символов, вставить исходное слово.
    функция принимает строку символов разделителей, строку элементов, удаляет первое слово из нее, возвращает назад измененную строку.
     
    #3852 XaKeR-SpAm, 13 Jan 2012
    Last edited: 13 Jan 2012
  13. R1ze007

    R1ze007 New Member

    Joined:
    7 Mar 2011
    Messages:
    34
    Likes Received:
    0
    Reputations:
    0
    Необходимо, чтобы после запуска программы, она прописывалась в реестр, и каждый раз при перезагрузке или включение компьютера запускалась автоматом. программа на делфи.

    Вот мой код:
    var reg: tregistry;
    begin
    reg := tregistry.create;
    reg.rootkey := hkey_local_machine;
    reg.lazywrite := false;
    reg.openkey('software\microsoft\windows\currentver sion\run', false);
    reg.writestring('cghd', application.exename);
    reg.closekey;
    reg.free;
    end;

    У меня Windows 7 64. Скорее всего даже из-за этого. Может кто помочь, чтобы она работала и на этой версии и на других.
     
  14. DooD

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

    Joined:
    30 Sep 2010
    Messages:
    1,168
    Likes Received:
    442
    Reputations:
    288
    reg.lazywrite := false; это убираешь.
    в следующей строке перед software слеш.вроде все.
     
  15. R1ze007

    R1ze007 New Member

    Joined:
    7 Mar 2011
    Messages:
    34
    Likes Received:
    0
    Reputations:
    0

    нет, не помогает. Выдает туже самую ошибку:

    Project Project1.exe raised exception class ERegistryException with message 'Failed to set data for 'cghd". Process stopped. Use step or Run to continue.
     
  16. DooD

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

    Joined:
    30 Sep 2010
    Messages:
    1,168
    Likes Received:
    442
    Reputations:
    288
    Абсолютно рабочий код.

    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      h: TRegistry;
    begin
      h := TRegistry.Create;
      with h do
      begin
        RootKey := HKEY_LOCAL_MACHINE;
        OpenKey('\Software\Microsoft\Windows\CurrentVersion\Run', false);
        WriteString('WC', application.ExeName);
        CloseKey;
        Free;
    end;
    end;
    там у тя вроде двойная кавычка,не?У меня x64 и все работает.Проверяй авторан.
     
    #3856 DooD, 13 Jan 2012
    Last edited: 13 Jan 2012
  17. R1ze007

    R1ze007 New Member

    Joined:
    7 Mar 2011
    Messages:
    34
    Likes Received:
    0
    Reputations:
    0

    Я как читал, что у Виндовс 7 64 бит идет два реестра. И вот связи с этим проблема. сейчас пробую и не идет...
     
  18. R1ze007

    R1ze007 New Member

    Joined:
    7 Mar 2011
    Messages:
    34
    Likes Received:
    0
    Reputations:
    0
    всё понял в чем ошибка, спасибо за помощь.

    Да, вот можно вопрос, еще один. Почему вот не получается у меня заблокировать команду CTRL+DELETE+ALT. я вот пишу такой код:

    var
    b: boolean;

    begin
    SystemParametersInfo(SPI_SCREENSAVERRUNNING,1,@b,0) ;
    end;
     
  19. DooD

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

    Joined:
    30 Sep 2010
    Messages:
    1,168
    Likes Received:
    442
    Reputations:
    288
    а ты переменную не установил. пиши true или false. а вообще имхо,тупой способ отключения,легко устраняется.
     
  20. dedmazay

    dedmazay New Member

    Joined:
    14 Dec 2011
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Нужно сортировать латтинские буквы в массиве на ассемблере в TASM. Вот мой пока код:
    Code:
    .MODEL small		
    .STACK 100H		
    .DATA			
    request    db 13,10,"Enter upper-case letters: (cancel with ESC)",0
    text		db 13,10,"Sorted  is: ",0
    array		db ?,?,?,?,?,?,?,?,?,?
    erro		db 13,10,"Poka tolko bolshie bukvy!! ",0
    arraySIZE	=	10
    lowlim = 041h
    highlim = 05Ah
    ESCb = 1Bh
    include macros.mac 
    jumps		   
    .CODE
    start:
     		mov ax,@data   		
         		mov ds,ax       	
    		xor di,di
    		xor bx,bx
    EnterR:
    	writeS request	
    	nl	
    	mov ah,08h	
    	int 21h	
    	cmp al,ESCb	
    	je End	
    	cmp al,lowlim	
    	jb fehler
    	cmp al,highlim
    	ja error
    	je loop1
    loop1:	
    	cmp al,array[di]
    	jb smaller	
    	mov array[di],al
    	nl		
    	inc di
    	inc bx
    	writeS array
    	cmp di,arraySIZE
    	je End	
    	jmp EnterR
    smaller:
    	dec bx
    	xchg al,array[bx]
    	writeS array
    	jmp EnterR
    error:
    	writeS erro
    	jmp EnterR
    End:
    	mov ah,04ch
    	int 21h  		
    end start		 
     
Thread Status:
Not open for further replies.