ВСЕМ ПОЛЬЗОВАТЕЛЯМ И ПРОГРАММИСТАМ СЮДА!
Да блин(((Меня тут кто-нибудь поддерживает?((
По моему мнению, С++ еще хорош тем, что он объекто-ориентированный))ассемблер же устаревает....
Steve Jobs. 1955-2011. Мы помним, как ты преобразовал наш мир....
- Реклама
Угу. Конечно.о моему мнению, С++ еще хорош тем, что он объекто-ориентированный))ассемблер же устаревает....
Вот только наверное ни кто не в курсе, что формально ассемблер это не язык программирования
Так что сравнил ты Х... с пальцем.
И второе, что ни кто так не может понять - любые языки (будь то компиляторы или интерпретаторы) есть инструменты. Ни кому в голову не придёт откручивать болт гвоздём, когда рядом отвёртка. А тут нате, я крут, ассемблер знаю...
- Сообщения: 6900
- Зарегистрирован: Ср май 05, 2010 13:31:29
Я имел в виду турбо паскаль он медленный, к тому же практически не поддающийся отладке из-за мс-дос файла и запутанности кода.ARV писал(а):потише на поворотах, юноша! ишь, плавунец какой выискался - паскаль хаять... если вы чего-то не умеете, это ваша проблема, а не языка программирования.А.Андрей писал(а):Ох и г*вно этот ваш паскаль!плавали уже, знаем
![]()
Взять хотябы оператор writeln. этот оператор состоит из ДВУХ ФУНКЦИЙ которые паскаль запихивает в прогу столько раз, сколько там операторов
(правда, во второй и последущие разы запихивается только одна функция) вот и пример:программа на асме 70 байт, программа на паскале:1,24к байта. они делают одно и тоже выводят надпись привет всем.паскаль как язык очень даже неплох, но на выходе - г***о
Спасибо за внимание.
- Сообщения: 6900
- Зарегистрирован: Ср май 05, 2010 13:31:29
Это неплохо, но по-моему это уменьшает скорость, хотя я могу ошибаться...Pika4u писал(а):По моему мнению, С++ еще хорош тем, что он объекто-ориентированный))
Ой ли?ассемблер же устаревает....
несмотря на некоторые сложности, его достаточно удобно отлаживать и программы на нем в ряде случаев быстрее.
Это мои личные наблюдения
я так не говорил.И второе, что ни кто так не может понять - любые языки (будь то компиляторы или интерпретаторы) есть инструменты. Ни кому в голову не придёт откручивать болт гвоздём, когда рядом отвёртка. А тут нате, я крут, ассемблер знаю...
Но, право, не следует забивать гвоздь станком с ЧПУ, на то есть молоток
Да знаю я, что это всего лишь способ записи машинного кода текстомВот только наверное ни кто не в курсе, что формально ассемблер это не язык программирования
Спасибо за внимание.
с вашими оценками кода вы отстали от жизни лет на 20... сейчас никто не удивляется программой, рисующей ваш флаг и занимающей пару мегабайт, а вы килобайт считаете ужасом... боюсь, в современном мире на ассемблере вам писать не придется ничего, сложнее подобных флажков, т.к. уровень стоящих перед программистами задач несколько иной... и вашего умения писать стобайтные программы, боюсь, никто не оценит.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Реклама
а кому нужна ваша скорость при современных гигагерцах тактовой частоты процев? 98% времени проц простаивает.А.Андрей писал(а):Это неплохо, но по-моему это уменьшает скорость, хотя я могу ошибаться...Pika4u писал(а):По моему мнению, С++ еще хорош тем, что он объекто-ориентированный))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Даже если опустим прелести ООП, сейчас одних готовых библиотек для разработки - море, при том мощнейших библиотек!
А люди вешаются при поддержке более-менее серьёзного продукта. Люди - профессионалы! Так значит не всё так просто, как кажется, и не зря, казалось бы простой код, получается объёмным.
А люди вешаются при поддержке более-менее серьёзного продукта. Люди - профессионалы! Так значит не всё так просто, как кажется, и не зря, казалось бы простой код, получается объёмным.
- Сообщения: 166
- Зарегистрирован: Вс фев 04, 2007 20:15:56
Ееее!!!А.Андрей писал(а):Здесь опубликовываются, тестируются и обсуждаются програмы на Си и Ассемблере!
Java забывать не надо, да? Может когда че тоже выложу
- Сообщения: 6900
- Зарегистрирован: Ср май 05, 2010 13:31:29
Я и не ставлю себе такую задачу и не стремлюсь разводить здесь священную войну, килобайт я так-же не считаю ужасом, просто мне как-то привычно иметь дело с ассемблером.... с си я просто никогда не сталкивался.ARV писал(а):с вашими оценками кода вы отстали от жизни лет на 20... сейчас никто не удивляется программой, рисующей ваш флаг и занимающей пару мегабайт, а вы килобайт считаете ужасом... боюсь, в современном мире на ассемблере вам писать не придется ничего, сложнее подобных флажков, т.к. уровень стоящих перед программистами задач несколько иной... и вашего умения писать стобайтные программы, боюсь, никто не оценит.
а так это "спортивное" хобби так сказать. когда мне нужно будет сделать сложную программу, например, инженерный калькулятор, то я буду использовать язык высокого уровня, да и то, по возможности буду вносить ассемблерные вставки, а когда какую нибудь рисовалку флагов или простейший антивирь или руководство на диалоговых окнах различной сложности, то вполне можно и асмом обойтись!
Спасибо за внимание.
вы лучше флаг великобритании изобразите на асме
или белоруссии - вот тогда я и погляжу на "ассемблерные вставки в программах на языке высокого уровня" 
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
))))Сейчас на С++ напишу тоже самое))
Steve Jobs. 1955-2011. Мы помним, как ты преобразовал наш мир....
- Сообщения: 6900
- Зарегистрирован: Ср май 05, 2010 13:31:29
Это (в двух словах) извращенство. Попробую на паскале.
Спасибо за внимание.
кстати, А.Андрей, раз уж вы такой фанат ассемблера, то не поленитесь в ваших циклах рисования при помощи функций 21-го прерывания опрашивать клавиатуру, ибо прерывать вашу программу несколько неприятно...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 6900
- Зарегистрирован: Ср май 05, 2010 13:31:29
кстати, А.Андрей, раз уж вы такой фанат ассемблера, то не поленитесь в ваших циклах рисования при помощи функций 21-го прерывания опрашивать клавиатуру, ибо прерывать вашу программу несколько неприятно..
Ага
Ага
Спасибо за внимание.
- Сообщения: 3641
- Зарегистрирован: Пт апр 03, 2009 22:12:58
- Откуда: Из Украины, Кировоградская облась,
"Оооой тааааам на гоооооорі......"
к чему это я.....а!
Че мы тут расп..разговорились,Пиши .выкладывай, оценим
к чему это я.....а!
Че мы тут расп..разговорились,Пиши .выкладывай, оценим
Вот усовершенствования версия калькулятора:
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
const int N=3;
void to2(int binary)
{
int n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,n17,n18,n19,n20,n21,n22,n23,n24;
n1=binary/2;
n2=binary%2;
n3=n1/2;
n4=n1%2;
n5=n3/2;
n6=n3%2;
n7=n5/2;
n8=n5%2;
n9=n7/2;
n10=n7%2;
n11=n9/2;
n12=n9%2;
n13=n11/2;
n14=n11%2;
n15=n13/2;
n16=n13%2;
n17=n15/2;
n18=n15%2;
n19=n17/2;
n20=n17%2;
n21=n19/2;
n22=n19%2;
n23=n21/2;
n24=n21%2;
printf("%d%d%d%d%d%d%d%d%d%d%d%d",n24,n22,n20,n18,n16,n14,n12,n10,n8,n6,n4,n2);
}
int to10(int binary)
{
int n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,n17,n18,n19,n20,n21,n22,n23,n24,p1;
n1=binary%10;
n2=binary/10;
n3=n2%10;
n4=n2/10;
n5=n4%10;
n6=n4/10;
n7=n6%10;
n8=n6/10;
n9=n8%10;
n10=n8/10;
n11=n10%10;
n12=n10/10;
n13=n12%10;
n14=n12/10;
n15=n14%10;
n16=n14/10;
n17=n16%10;
n18=n16/10;
n19=n18%10;
n20=n18/10;
p1=n19*512+n17*256+n15*128+n13*64+n11*32+n9*16+n7*8+n5*4+n3*2+n1*1;
return p1;
}
main()
{
char * u=new char[17];
int l,l1,count=0,er,sys,n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,n17,n18,n19,n20,n21,n22,n23,n24,k1,k2,k3,k4,k5,k6,k7,k8,k9,k10,k11,k12,k13,k14,k15,k16,k17,k18,k19,k20,binary,r,i4,i5,binary1,r1,r2,r3;
float i3,i1,i2,sq,sqr,r4;
float xd,xd1,yrol,yrol1;
int par,yrol2,sq1,g1,g2,g3,g4,g5,g6,g7,g8,g9,g10,succes,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11,h12,h13,h14,h15,h16,h17,h18,h19,h20,h21,h22,h23,h24,i;
printf("Программа для перевода чисел между системами счисления.v1.0.1.2\nНаписал прогу Diman56");
while(1)
{
printf("\nВыберите систему счисления(10-десятичная,2-двоичная)\nИли наберите -1 для выхода: ");
scanf("%d",&sys);
if(sys==-1)
exit(1);
else
{
printf("Введите действие\nДействия:\n1-сложение\n2-вычитание\n3-умножение\n4-деление\n5-перевод из указанной системы счисления в противоположную\n6-извлечение квадратного корня\n7-тригонометрические функции(только для десятичной системы).\nДействие: ");
scanf("%d",&i5);
switch (sys)
{
case 10:
switch(i5)
{
case 1:
printf("Введите чиcло 1: ");
scanf ("%f", &i1);
printf("Введите число 2: ");
scanf ("%f", &i2);
i3=i1+i2;
printf("Сумма равна %f",i3);break;
case 2:
printf("Введите чиcло 1: ");
scanf ("%f", &i1);
printf("Введите число 2: ");
scanf ("%f", &i2);
i3=i1-i2;
printf("Разность равна %f\n",i3);break;
case 3:
printf("Введите чиcло 1: ");
scanf ("%f", &i1);
printf("Введите число 2: ");
scanf ("%f", &i2);
i3=i1*i2;
printf("Произведение равно %f\n",i3);break;
case 4:
printf("Введите чиcло 1: ");
scanf ("%f", &i1);
printf("Введите число 2: ");
scanf ("%f", &i2);
i3=i1/i2;
printf("Частное равно %f\n",i3);break;
case 5:
printf("Введите число для перевода: ");
scanf("%d", &binary);
printf("Число в двоичной системе счисления:");
to2(binary);
break;
case 6:
printf("Введите число: ");
scanf("%f",&sq);
if(sq<0.0)
{
printf("Ошибка!!ВЫ ВВЕЛИ ОТРИЦАТЕЛЬНОЕ ЧИСЛО!!!\n");
}
else
{
sqr=sqrt(sq);
printf("Квадратный корень из %f равен %f",sq,sqr);
}
break;
case 7:
printf("Введите параметр:\n1-синус\n2-косинус\n3-тангенс\n4-угол из синуса\n5-угол из косинуса\n6-угол из тангенса\nПараметр: ");
scanf("%d", &par);
switch(par)
{
case 1:
printf("Введите значение угла: ");
scanf("%f", &yrol);
yrol1=yrol*3.14/180;
xd=sin(yrol1);
printf("Синус угла %f равен %f",yrol,xd);
break;
case 2:
printf("Введите значение угла: ");
scanf("%f", &yrol);
yrol1=yrol*3.14/180;
xd=cos(yrol1);
printf("Косинус угла %f равен %f",yrol,xd);
break;
case 3:
printf("Введите значение угла: ");
scanf("%f", &yrol);
yrol1=yrol*3.1415/180;
xd=tan(yrol1);
printf("Тангенс угла %f равен %f",yrol,xd);
break;
case 4:
printf("Введите значение cинуса: ");
scanf("%f", &yrol);
xd=asin(yrol);
xd1=180*xd/3.14;
printf("Угол равен %f",xd1);
break;
case 5:
printf("Введите значение коcинуса: ");
scanf("%f", &yrol);
xd=acos(yrol);
xd1=180*xd/3.14;
printf("Угол равен %f",xd1);
break;
case 6:
printf("Введите значение тангенса: ");
scanf("%f", &yrol);
xd=atan(yrol);
xd1=180*xd/3.14;
printf("Угол равен %f",xd1);
break;
}
}break;
case 2:
switch (i5)
{
case 1:
printf("Введите число 1: ");
scanf("%d",&binary);
printf("Введите число 2: ");
scanf("%d", &binary1);
r1=to10(binary);
r2=to10(binary1);
r3=r1+r2;
printf("Сумма равна %d или в двоичной системе:",r3);
to2(r3);
break;
case 2:
printf("Введите уменьшаемое: ");
scanf("%d",&binary);
printf("Введите вычитаемое: ");
scanf("%d", &binary1);
r1=to10(binary);
r2=to10(binary1);
r3=r1-r2;
printf("Разность равна %d или в двоичной системе:", r3);
to2(r3);
break;
case 3:
printf("Введите первый множитель: ");
scanf("%d",&binary);
printf("Введите второй множитель: ");
scanf("%d", &binary1);
r1=to10(binary);
r2=to10(binary1);
r3=r1*r2;
printf("Произведение равно %d или в двоичной системе:",r3);
to2(r3);
break;
case 4:
printf("Введите делимое: ");
scanf("%d",&binary);
printf("Введите делитель: ");
scanf("%d", &binary1);
r1=to10(binary);
r2=to10(binary1);
r3=r1/r2;
printf("Частное равно %d или в двоичной системе:",r3);
to2(r3);
break;
case 5:
printf("Введите число: ");
scanf ("%d", &binary);
r=to10(binary);
printf("Число в десятичной системе счисления:%d",r);
break;
case 6:
printf("Введите число: ");
scanf("%d", &sq1);
r4=to10(sq1);
if(r4<0.0)
{
printf("Ошибка!!ВЫ ВВЕЛИ ОТРИЦАТЕЛЬНОЕ ЧИСЛО!!!\n");
}
else
{
sqr=sqrt(r4);
printf("Квадратный корень из %d равен %f,", sq1,sqr);
}
break;
}
break;
}
getch();
}
}
}
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
const int N=3;
void to2(int binary)
{
int n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,n17,n18,n19,n20,n21,n22,n23,n24;
n1=binary/2;
n2=binary%2;
n3=n1/2;
n4=n1%2;
n5=n3/2;
n6=n3%2;
n7=n5/2;
n8=n5%2;
n9=n7/2;
n10=n7%2;
n11=n9/2;
n12=n9%2;
n13=n11/2;
n14=n11%2;
n15=n13/2;
n16=n13%2;
n17=n15/2;
n18=n15%2;
n19=n17/2;
n20=n17%2;
n21=n19/2;
n22=n19%2;
n23=n21/2;
n24=n21%2;
printf("%d%d%d%d%d%d%d%d%d%d%d%d",n24,n22,n20,n18,n16,n14,n12,n10,n8,n6,n4,n2);
}
int to10(int binary)
{
int n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,n17,n18,n19,n20,n21,n22,n23,n24,p1;
n1=binary%10;
n2=binary/10;
n3=n2%10;
n4=n2/10;
n5=n4%10;
n6=n4/10;
n7=n6%10;
n8=n6/10;
n9=n8%10;
n10=n8/10;
n11=n10%10;
n12=n10/10;
n13=n12%10;
n14=n12/10;
n15=n14%10;
n16=n14/10;
n17=n16%10;
n18=n16/10;
n19=n18%10;
n20=n18/10;
p1=n19*512+n17*256+n15*128+n13*64+n11*32+n9*16+n7*8+n5*4+n3*2+n1*1;
return p1;
}
main()
{
char * u=new char[17];
int l,l1,count=0,er,sys,n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,n17,n18,n19,n20,n21,n22,n23,n24,k1,k2,k3,k4,k5,k6,k7,k8,k9,k10,k11,k12,k13,k14,k15,k16,k17,k18,k19,k20,binary,r,i4,i5,binary1,r1,r2,r3;
float i3,i1,i2,sq,sqr,r4;
float xd,xd1,yrol,yrol1;
int par,yrol2,sq1,g1,g2,g3,g4,g5,g6,g7,g8,g9,g10,succes,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11,h12,h13,h14,h15,h16,h17,h18,h19,h20,h21,h22,h23,h24,i;
printf("Программа для перевода чисел между системами счисления.v1.0.1.2\nНаписал прогу Diman56");
while(1)
{
printf("\nВыберите систему счисления(10-десятичная,2-двоичная)\nИли наберите -1 для выхода: ");
scanf("%d",&sys);
if(sys==-1)
exit(1);
else
{
printf("Введите действие\nДействия:\n1-сложение\n2-вычитание\n3-умножение\n4-деление\n5-перевод из указанной системы счисления в противоположную\n6-извлечение квадратного корня\n7-тригонометрические функции(только для десятичной системы).\nДействие: ");
scanf("%d",&i5);
switch (sys)
{
case 10:
switch(i5)
{
case 1:
printf("Введите чиcло 1: ");
scanf ("%f", &i1);
printf("Введите число 2: ");
scanf ("%f", &i2);
i3=i1+i2;
printf("Сумма равна %f",i3);break;
case 2:
printf("Введите чиcло 1: ");
scanf ("%f", &i1);
printf("Введите число 2: ");
scanf ("%f", &i2);
i3=i1-i2;
printf("Разность равна %f\n",i3);break;
case 3:
printf("Введите чиcло 1: ");
scanf ("%f", &i1);
printf("Введите число 2: ");
scanf ("%f", &i2);
i3=i1*i2;
printf("Произведение равно %f\n",i3);break;
case 4:
printf("Введите чиcло 1: ");
scanf ("%f", &i1);
printf("Введите число 2: ");
scanf ("%f", &i2);
i3=i1/i2;
printf("Частное равно %f\n",i3);break;
case 5:
printf("Введите число для перевода: ");
scanf("%d", &binary);
printf("Число в двоичной системе счисления:");
to2(binary);
break;
case 6:
printf("Введите число: ");
scanf("%f",&sq);
if(sq<0.0)
{
printf("Ошибка!!ВЫ ВВЕЛИ ОТРИЦАТЕЛЬНОЕ ЧИСЛО!!!\n");
}
else
{
sqr=sqrt(sq);
printf("Квадратный корень из %f равен %f",sq,sqr);
}
break;
case 7:
printf("Введите параметр:\n1-синус\n2-косинус\n3-тангенс\n4-угол из синуса\n5-угол из косинуса\n6-угол из тангенса\nПараметр: ");
scanf("%d", &par);
switch(par)
{
case 1:
printf("Введите значение угла: ");
scanf("%f", &yrol);
yrol1=yrol*3.14/180;
xd=sin(yrol1);
printf("Синус угла %f равен %f",yrol,xd);
break;
case 2:
printf("Введите значение угла: ");
scanf("%f", &yrol);
yrol1=yrol*3.14/180;
xd=cos(yrol1);
printf("Косинус угла %f равен %f",yrol,xd);
break;
case 3:
printf("Введите значение угла: ");
scanf("%f", &yrol);
yrol1=yrol*3.1415/180;
xd=tan(yrol1);
printf("Тангенс угла %f равен %f",yrol,xd);
break;
case 4:
printf("Введите значение cинуса: ");
scanf("%f", &yrol);
xd=asin(yrol);
xd1=180*xd/3.14;
printf("Угол равен %f",xd1);
break;
case 5:
printf("Введите значение коcинуса: ");
scanf("%f", &yrol);
xd=acos(yrol);
xd1=180*xd/3.14;
printf("Угол равен %f",xd1);
break;
case 6:
printf("Введите значение тангенса: ");
scanf("%f", &yrol);
xd=atan(yrol);
xd1=180*xd/3.14;
printf("Угол равен %f",xd1);
break;
}
}break;
case 2:
switch (i5)
{
case 1:
printf("Введите число 1: ");
scanf("%d",&binary);
printf("Введите число 2: ");
scanf("%d", &binary1);
r1=to10(binary);
r2=to10(binary1);
r3=r1+r2;
printf("Сумма равна %d или в двоичной системе:",r3);
to2(r3);
break;
case 2:
printf("Введите уменьшаемое: ");
scanf("%d",&binary);
printf("Введите вычитаемое: ");
scanf("%d", &binary1);
r1=to10(binary);
r2=to10(binary1);
r3=r1-r2;
printf("Разность равна %d или в двоичной системе:", r3);
to2(r3);
break;
case 3:
printf("Введите первый множитель: ");
scanf("%d",&binary);
printf("Введите второй множитель: ");
scanf("%d", &binary1);
r1=to10(binary);
r2=to10(binary1);
r3=r1*r2;
printf("Произведение равно %d или в двоичной системе:",r3);
to2(r3);
break;
case 4:
printf("Введите делимое: ");
scanf("%d",&binary);
printf("Введите делитель: ");
scanf("%d", &binary1);
r1=to10(binary);
r2=to10(binary1);
r3=r1/r2;
printf("Частное равно %d или в двоичной системе:",r3);
to2(r3);
break;
case 5:
printf("Введите число: ");
scanf ("%d", &binary);
r=to10(binary);
printf("Число в десятичной системе счисления:%d",r);
break;
case 6:
printf("Введите число: ");
scanf("%d", &sq1);
r4=to10(sq1);
if(r4<0.0)
{
printf("Ошибка!!ВЫ ВВЕЛИ ОТРИЦАТЕЛЬНОЕ ЧИСЛО!!!\n");
}
else
{
sqr=sqrt(r4);
printf("Квадратный корень из %d равен %f,", sq1,sqr);
}
break;
}
break;
}
getch();
}
}
}
Steve Jobs. 1955-2011. Мы помним, как ты преобразовал наш мир....
- Сообщения: 3641
- Зарегистрирован: Пт апр 03, 2009 22:12:58
- Откуда: Из Украины, Кировоградская облась,


