Помогите завершить программу в ассемблере, которая возводит любое число в любую степень. Нужна помошь с отрицательным основателем и показателем и при вводе не чисел. Вот до чего я дошел. 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
не все понял что надо.про не числа скажу так: проверяй от 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 а вообще юзай сопроцессор
с++ Данные об автомобиле состоят из его марки, номера и фамилии владельца. Есть информационный массив 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(); }
Например 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++; }
какие еще регулярные выражения? 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();
C# Ребят, нужно написать Графический интерфейс для работы с базой данных access. Кнопки должны быть сделаны не с помощью навигационной панели. Помогите, очень надо.
Может кто знает как это реализовать? Описать класс «множество», позволяющий выполнять основные операции: добавление и удаление элемента, пересечение, объединение и разность множеств. Написать программу, демонстрирующую все разработанные элементы класса.
Решение уравнения методом дихтомии 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, гляньте чего не так ?
помогите написать 2 функции на Си... долно очень мучаюсь не получается функция принимает строку разделителей, строку элементов, исходное слово. должна вернуть измененную строку: после слов, содержащих четное количество символов, вставить исходное слово. функция принимает строку символов разделителей, строку элементов, удаляет первое слово из нее, возвращает назад измененную строку.
Необходимо, чтобы после запуска программы, она прописывалась в реестр, и каждый раз при перезагрузке или включение компьютера запускалась автоматом. программа на делфи. Вот мой код: 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. Скорее всего даже из-за этого. Может кто помочь, чтобы она работала и на этой версии и на других.
нет, не помогает. Выдает туже самую ошибку: Project Project1.exe raised exception class ERegistryException with message 'Failed to set data for 'cghd". Process stopped. Use step or Run to continue.
Абсолютно рабочий код. 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 и все работает.Проверяй авторан.
Я как читал, что у Виндовс 7 64 бит идет два реестра. И вот связи с этим проблема. сейчас пробую и не идет...
всё понял в чем ошибка, спасибо за помощь. Да, вот можно вопрос, еще один. Почему вот не получается у меня заблокировать команду CTRL+DELETE+ALT. я вот пишу такой код: var b: boolean; begin SystemParametersInfo(SPI_SCREENSAVERRUNNING,1,@b,0) ; end;
а ты переменную не установил. пиши true или false. а вообще имхо,тупой способ отключения,легко устраняется.
Нужно сортировать латтинские буквы в массиве на ассемблере в 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