скачал олли дебаг, открыл, но тама совсем все не так) на то чтоб без опыта разобраться что оно там накомпилило надо минимум день... З.Ы. просто фактически это мой 3 кодинг на асме... отладчиком еще не умею пользоватся... пошел искать инфу по олли, но это нада на завтра... закачал архив с исходником и плодами компиляции брать тут компилил след строкой ML /nologo -Zi -c -Fl -Sg -coff str_v_br.asm линковал этой: LINK32 /nologo str_v_br.obj user32.lib kernel32.lib Study32.obj /SUBSYSTEM:CONSOLE /DEBUG /MAP
а что ты не понимаешь? на ассемблере всё просто - заглавные буквы от A до Z имеют аски коды 41h-5Ah, строчные - 61h-7Ah. И все они ничем друг от друга не отличаются, кроме пятого бита(здесь был KEZ). Меняя его, ты сможешь выводить как в верхнем регистре, так и в нижнем. например буква а A:01000001 и a:01100001 Используй xor. А как на паскале хз =) я его не знаю
Автор, без отладченга ты сильно заебешься... Открываем, попадаем на первую инструкцию F7 - это шаг внутрь, F8 - поверх. отличие - например, если будет call, то F7 шагнет внутрь процедуры, а F8 - перешагнет этот CALL F9 - запуск, F2 - брейк-поинт. ENTER - посмотреть что там находится (по джампу, колу или рету, и тп), не переходя. Нажимаем F8: Идем F8 или F7, проходя твой код, скоро попадаем на call ReadString там все останавливается (из-за ReadConsole()) и надо ввести строку. Ну и вот так, пошагово или с брекпойнтами, выполняя, смотрим где логика не соответствует работе программы. Отладченг - это сила, без него - все бы вымерли давно. tclover, бита а не байта.
спс) еще утром все поправил, пошел сдавать) ЗЫ юзнул ТДебаг, раньше в паскале програмил (1 курс када был)) нашел все без порблем... теперь изучаю инфу по олли )))
2 tclover, ды я знаю как перевести в верхний и в нижний регистра, я хз как теперь все три строки вывести =)
Задание используя алгоритмы и контейнеры Stl: создай список из 20 случаных элементов, со значениями от 1 до 19. отсортируй список так что бы сначала шли четные элементы Заранее спасибо
Пожалуйста помогите написать хотя бы одну программу на языке Pascal, завтра по этим программам сдавать зачет. Мне сейчас нужно срочно уезжать и у меня физически нет возможности(((( Заранее спасибо тем, кто поможет написать хоть какую-то часть кода!! 1. Пакет операций над матрицами Требуется написать пакет функций для работы с матрицами размерности 4х4 : Транспонирование: матрица B получается перестановкой строк и столбцов в исходной матрице A, т.е. для квадратной матрицы bij = aji. Умножение: произведением матрицы A размерности nхm на матрицу B размерности mхp называется матрица C, каждый элемент cij которой равен сумме произведений элементов i–й строки матрицы A на соответствующие элементы j–го столбца матрицы B, т.е. cij = ai1b1j + … + aimbmj. Логические блоки(что нужно сделать): Генерация 2 исходных матриц (ручная и random). Транспонирование обеих матриц. Умножение 2 матриц. Вывод (любой) матрицы размерности 4х4. Как и что будет оцениваться преподом: Содержательная часть: +5 – операция транспонирование; +10 – операция умножение. Интерфейсная часть: +5 – понятный интерфейс со строками приглашения и пояснениями результатов; +5 – наличие меню и циклического алгоритма работы программы. Пояснительная часть: +2,5 – встроенная система помощи (вывод справочной информации по операциям по специальной команде); +2,5 – отчёт о проведённом тестировании подробное описание входных и соответствующих им выходных данных, ограничений программы по диапазонам и проч.). 2. Журнал Требуется создать "Журнал исследователя" для изучения уровня доходов для некоторой группы населения (не более 100 человек). Логические блоки (базовый пакет): Добавление данных о возрасте, городе проживания и среднем месячном доходе 1 человека (с точностью до целых – для числовых данных). Поиск диапазона введённых значений (для произвольного набора целочисленных данных). Поиск среднего значения (для произвольного набора целочисленных данных). Вывод аналитических данных (диапазона значений и среднего для всех данных о возрасте и всех данных об уровне доходов). Логические блоки (дополнительный пакет): Вывод аналитических данных (диапазон и среднее) для заданной пользователем возрастной группы (вход: диапазон возраста группы). Построение соотношения "возраст-доход" для каждого человека и вывод аналитических данных: возрастание / убывание дохода с возрастом. Анализ и вывод данных по каждому городу: диапазон и среднее, отклонение среднего для города от среднего для всех данных. Возможность добавления новых статистических данных и повтора анализа. Как и что будет оцениваться преподом: Содержательная часть: +5 – базовый пакет операций; +25 – дополнительный пакет операций. Интерфейсная часть: +5 – понятный интерфейс со строками приглашения, циклическим вводом данных до специальной команды пользователя и пояснениями результатов; +5 – наличие меню и циклического алгоритма работы программы. Пояснительная часть: +2,5 – встроенная система помощи (вывод справочной информации о возможностях программы по специальной команде); +2,5 – отчёт о проведённом тестировании (подробное описание входных и соответствующих им выходных данных, ограничений программы по диапазонам и проч.).
Меня запарило такую фигню писать, ИМО это только для 8-9 класса лицея. Моя шняга работает с квадратными матрицами. Порядок в матрице задается в константах. Меня просто запарило писать такую гадость Code: program MATRIX; uses crt; const MAX=4; var a,b,t1,t2,c1,c2:array [1..MAX,1..MAX] of integer; j,i,k:integer; key1,key2:char; begin while true do begin clrscr; for j:=1 to MAX do for i:=1 to MAX do begin t1[j,i]:=0; t2[j,i]:=0; c1[j,i]:=0; c2[j,i]:=0; end; repeat clrscr; writeln('1-console input'); writeln('2-auto'); writeln('3-exit'); key1:=readkey; until ((key1='1') or (key1='2') or (key1='3')); if key1='3' then break; if key1='1' then begin for j:=1 to MAX do begin for i:=1 to MAX do begin write('a[', j ,',' ,i ,']='); read(a[j,i]); end; writeln; end; for j:=1 to MAX do begin for i:=1 to MAX do begin write('b[', j ,',' ,i ,']='); read(b[j,i]); end; writeln; end; end; if key1='2' then begin writeln('Matrix 1'); for j:=1 to MAX do begin for i:=1 to MAX do begin a[j,i]:=random(10); write(a[j,i]); write(' '); end; writeln; end; writeln('Matrix 2'); for j:=1 to MAX do begin for i:=1 to MAX do begin b[j,i]:=random(10); write(b[j,i]); write(' '); end; writeln; end; end; writeln(' Matrix created, press key'); key2:=readkey; writeln('T-Matrix 1'); for i:=1 to MAX do begin j:=1; while j<=MAX do begin t1[i,j]:=a[j,i]; inc(j); end; end; for j:=1 to MAX do begin for i:=1 to MAX do write(t1[j,i],' '); writeln; end; writeln('T-Matrix 2'); for i:=1 to MAX do begin j:=1; while j<=MAX do begin t2[i,j]:=b[j,i]; inc(j); end; end; for j:=1 to MAX do begin for i:=1 to MAX do write(t2[j,i],' '); writeln; end; writeln(' T-Matrix created, press key'); key2:=readkey; writeln('Matrix 1 * Matrix 2'); for i:=1 to MAX do for j:=1 to MAX do for k:=1 to MAX do c1[i,j]:=c1[i,j]+a[i,k]*b[k,j]; for j:=1 to MAX do begin for i:=1 to MAX do write(c1[j,i],' '); writeln; end; writeln('Matrix 2 * Matrix 1'); for i:=1 to MAX do for j:=1 to MAX do for k:=1 to MAX do c2[i,j]:=c2[i,j]+b[i,k]*a[k,j]; for j:=1 to MAX do begin for i:=1 to MAX do write(c2[j,i],' '); writeln; end; writeln(' Increase Matrix created, press key to clear screen'); key2:=readkey; end; end.
Определить класс "дата" c компонентными данными: число, месяц, год. Перегрузить операциия: >>,<< (вывод в формате "чч/мм/гггг"), >= (проверка на более позднюю дату или на их равенство), += (прибавить n дней). Code: #include <iostream> #include <iomanip> using namespace std; class v_date { int number; int month; int year; public: v_date (int , int, int ); int put_1(); int put_2(); int put_3(); void get_1(int ); void get_2(int ); void get_3(int ); }; v_date::v_date(int a=0, int b=0, int c=0) { if (a<31) number=a; if (b<13) month=b; if (c<2014) year=c; } int v_date::put_1() { return number; } int v_date::put_2() { return month; } int v_date::put_3() { return year; } void v_date::get_1(int a) { if (a<31) number=a; else number=0; } void v_date::get_2(int b) { if (b<13) month=b; else month=0; } void v_date::get_3(int c) { if (c<2014) year=c; else year=0; } ostream& operator << (ostream& out, v_date p) { out<<setw(2)<<p.put_1()<<"/"<<setw(2)<<p.put_2()<<"/"<<setw(4)<<p.put_3()<<endl; return out; } istream& operator >> (istream& in, v_date& p) { int a; cout<<"\nEnter number "; in>>a; p.get_1(a); cout<<"\nEnter month "; in>>a; p.get_2(a); cout<<"\nEnter year "; in>>a; p.get_3(a); return in; } int operator >= (v_date p, v_date pp) { int kz; int np=365*p.put_3()+30*p.put_2()+p.put_1(); int npp=365*pp.put_3()+30*pp.put_2()+pp.put_1(); return kz=np<npp ? 0: 1; //вычисляем большую дату } void main() { v_date d1, d2; cout<<"\nEnter d1\n"; cin>>d1; cout<<"\nd1="<<d1; cout<<"\nEnter d2\n"; cin>>d2; cout<<"\nd2="<<d2; if (d1>=d2) cout<<"\nbig number "<<d1; else cout<<"\nbig number "<<d2; } вот программка не хватает оператора +=, не могу понять как сделать... что-то вроде Code: v_date operator += (v_date p, v_date pp) { int zz; zz=p.put_1()+pp.put_1(); return zz;} может кто поможет / //решил
Уважаемые Форумчане, помогите пожалуйста с выполнением лабораторной работы на языке С. Дело в том, что лабораторную работу нужно сдать уже в четверг, до него осталось 2 дня, а помимо программирования нужно до четверга сдать ещё 3 зачёта, которые придётся учить, следовательно некого просить о помощи... Задание лабораторной такое: Дан файл (333.dat) в котором находятся две квадратные матрицы. Файл выглядит примерно таким образом: Code: 5 4 х х х х х х х х х х х х х х х х х х х х х х х х х у у у у у у у у у у у у у у у у где 5 - определитель размерности первой матрицы, 4 - определитель размерности второй матрицы, х - любое число в первой матрице, у - любое число во второй матрице. Итак нам нужно: 1) проверить наличие файла 2) считать оба массива из файла, предварительно заказав для них память Code: a = (int **)malloc(n*sizeof(int *)); n - наше первое число 5 for(i=0; i<n; i++) a[i] = (int *)malloc(n*sizeof(int)); ну в подобном духе... 3) Из первых двух матриц составить третью матрицу, в которой левый верхний угол состоит из элементов той матрицы, след которой больше, а правый нижний - из элементов второй матрицы. Остальные элементы матрицы равны 0. 4) Вывести результат на экран. Очень надеюсь, что Вы мне поможете. Напомню, что язык, на котором нужно составить программу - "С". (желательно под Visual Studio 2005).
Задание используя алгоритмы и контейнеры Stl: создай список из 20 случаных элементов, со значениями от 1 до 19. отсортируй список так что бы сначала шли четные элементы Заранее спасибо
На основе элементов вещественного массива А(n) и значения логической переменной Т вычислить количество положительных элементов массива А, если переменная Т имеет значение «истина» и произведение отрицательных элементов массива А в противном случае. Реализация Паскаль. Пожалуйстааааа!!!! Email: [email protected] или здесь...плиз
Release, навскидку Code: const n = 5; var a : array [1..n] of real; p : real; i : integer; t : boolean; begin t := false; writeln ('ввод данных в массив'); for i := 1 to n do begin write ('Введите ', i, '-й элемент массива: '); readln (a [i]); end; p := 1; if t then for i := 1 to n do if a [i] > 0 then p := p * a [i]; if not t then for i := 1 to n do if a [i] < 0 then p := p * a [i]; writeln ('Произведение: ', p : 0 : 3); end.
То есть тут: Code: if t then for i := 1 to n do if a [i] > 0 then p := p * a [i]; надо делать типо: Code: if t then for i := 1 to n do if a [i] > 0 then inc(count); где count целочисленная переменная, инициализированная нулем перед циклом
Release, лови. Code: program ArrayNoobas; uses crt; const Max=20; var a:array [1..MAX] of real; i,kol:integer; pro:real; t:boolean; procedure zapoln; begin clrscr; for i:=1 to MAX do a[i]:=-5+random(10); end; procedure create_t; var key:char; begin repeat key:=readkey; until (key='0')or(key='1') ; if key='0' then t:=false else t:=true; end; begin zapoln; create_t; if t=true then begin for i:=1 to MAX do if a[i]>0 then inc(kol); writeln(kol); end else begin i:=1; while i<=MAX do begin inc(i); if a[i-1]<0 then begin pro:=a[i-1]; break; end; end; while i<=MAX do begin if a[i]<0 then pro:=pro*a[i]; inc(i); end; writeln(pro); end; readln; end.
Млин, сорри, пост невнимательно прочел (( Этого недостаточно, ее еще нужно описать в разделе var Neovild, одно замечание - массив будет заполняться одним числом, ибо отсутствует Randomize в начале процедуры А вот этот код для чего? Code: while i<=MAX do begin inc(i); if a[i-1]<0 then begin pro:=a[i-1]; break; end; end; Поиск в массиве первого отрицательного числа? Имхо, это лишнее немного, достаточно проинициализировать переменную pro единицей перед циклом вычисления произведения (чуть не написал "производной" ). Хотя ваш вариант программы тоже приемлем