
21.12.2007, 11:17
|
|
Banned
Регистрация: 13.12.2005
Сообщений: 1,091
С нами:
10741286
Репутация:
1847
|
|
Помогите в написании задания для курсача асм и тоже самое на паскале
Дана строка "YoU ArE DeAd!!!" перевести её в верхний регист, затем в нижний и вывести все три сторки(искодня, верхний регистр, нижний)....
есть маленькие наработки
а что ты не понимаешь?
на ассемблере всё просто -
заглавные буквы от A до Z имеют аски коды 41h-5Ah, строчные - 61h-7Ah. И все они ничем друг от друга не отличаются, кроме пятого бита(здесь был KEZ). Меняя его, ты сможешь выводить как в верхнем регистре, так и в нижнем.
например буква а
A:01 000001 и a:01 100001
Используй xor.
А как на паскале хз =) я его не знаю
Последний раз редактировалось tclover; 21.12.2007 в 11:55..
|
|
|

21.12.2007, 11:46
|
|
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
С нами:
11042306
Репутация:
2726
|
|
Автор, без отладченга ты сильно заебешься...
Открываем, попадаем на первую инструкцию
F7 - это шаг внутрь, F8 - поверх.
отличие - например, если будет call, то F7 шагнет внутрь процедуры, а F8 - перешагнет этот CALL
F9 - запуск, F2 - брейк-поинт. ENTER - посмотреть что там находится (по джампу, колу или рету, и тп), не переходя.
Нажимаем F8:
Идем F8 или F7, проходя твой код, скоро попадаем на
call ReadString
там все останавливается (из-за ReadConsole()) и надо ввести строку.
Ну и вот так, пошагово или с брекпойнтами, выполняя, смотрим где логика не соответствует работе программы.
Отладченг - это сила, без него - все бы вымерли давно.
tclover, бита а не байта.
|
|
|

21.12.2007, 11:54
|
|
Banned
Регистрация: 13.12.2005
Сообщений: 1,091
С нами:
10741286
Репутация:
1847
|
|
ага. интересно, почему я про байты написал.
ps а я там у тебя в репе вопрос спросил
Последний раз редактировалось tclover; 21.12.2007 в 11:56..
|
|
|

21.12.2007, 15:21
|
|
Новичок
Регистрация: 22.08.2007
Сообщений: 10
С нами:
9852243
Репутация:
1
|
|
спс) еще утром все поправил, пошел сдавать)
ЗЫ юзнул ТДебаг, раньше в паскале програмил (1 курс када был)) нашел все без порблем... теперь изучаю инфу по олли )))
|
|
|

21.12.2007, 15:50
|
|
Новичок
Регистрация: 07.12.2007
Сообщений: 3
С нами:
9698420
Репутация:
0
|
|
2 tclover, ды я знаю как перевести в верхний и в нижний регистра, я хз как теперь все три строки вывести =)
|
|
|

23.12.2007, 20:25
|
|
Участник форума
Регистрация: 08.09.2007
Сообщений: 211
С нами:
9828237
Репутация:
778
|
|
Определить класс "дата" c компонентными данными: число, месяц, год. Перегрузить операциия: >>,<<
(вывод в формате "чч/мм/гггг"),
>= (проверка на более позднюю дату или на их равенство), += (прибавить n дней).
Код:
#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;
}
вот программка не хватает оператора +=, не могу понять как сделать... что-то вроде
Код:
v_date operator += (v_date p, v_date pp)
{ int zz; zz=p.put_1()+pp.put_1(); return zz;}
может кто поможет /
//решил
Последний раз редактировалось Nea7; 24.12.2007 в 19:04..
|
|
|

25.12.2007, 19:43
|
|
Новичок
Регистрация: 30.09.2007
Сообщений: 10
С нами:
9796332
Репутация:
0
|
|
Уважаемые Форумчане, помогите пожалуйста с выполнением лабораторной работы на языке С. Дело в том, что лабораторную работу нужно сдать уже в четверг, до него осталось 2 дня, а помимо программирования нужно до четверга сдать ещё 3 зачёта, которые придётся учить, следовательно некого просить о помощи...
Задание лабораторной такое:
Дан файл (333.dat) в котором находятся две квадратные матрицы. Файл выглядит примерно таким образом:
Код:
5 4
х х х х х
х х х х х
х х х х х
х х х х х
х х х х х
у у у у
у у у у
у у у у
у у у у
где 5 - определитель размерности первой матрицы, 4 - определитель размерности второй матрицы, х - любое число в первой матрице, у - любое число во второй матрице.
Итак нам нужно:
1) проверить наличие файла
2) считать оба массива из файла, предварительно заказав для них память
Код:
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).
Последний раз редактировалось Furious; 25.12.2007 в 19:45..
|
|
|

21.12.2007, 18:36
|
|
Banned
Регистрация: 24.08.2007
Сообщений: 201
С нами:
9849986
Репутация:
424
|
|
Задание
используя алгоритмы и контейнеры Stl:
создай список из 20 случаных элементов, со значениями от 1 до 19.
отсортируй список так что бы сначала шли четные элементы
Заранее спасибо
|
|
|

21.12.2007, 22:51
|
|
Members of Antichat - Level 5
Регистрация: 23.08.2007
Сообщений: 417
С нами:
9851426
Репутация:
3908
|
|
Пожалуйста помогите написать хотя бы одну программу на языке 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 – отчёт о проведённом тестировании (подробное описание входных и соответствующих им выходных данных, ограничений программы по диапазонам и проч.).
|
|
|

21.12.2007, 23:36
|
|
Познающий
Регистрация: 18.12.2007
Сообщений: 32
С нами:
9682572
Репутация:
86
|
|
Ded MustD!e, я тебе по матрицам напишу
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|