В какой системе программирования вы пишите?

(a!=b)=(a<>b)

Модератор: Cerberus

В какой СП вы пишете?

Visual C++
4
13%
C++ Builder
4
13%
Delphi
8
25%
Visual Basic
2
6%
QBasic 4.5
0
Голосов нет
TC++ 3.01
0
Голосов нет
TP 7.0
0
Голосов нет
MASM 8.0
1
3%
В первый раз о таких слышу
0
Голосов нет
Я не программист
13
41%
 
Всего голосов: 32

...just uno
Истинный Wыксунец
Сообщения: 1082
Зарегистрирован: Чт июл 07, 2005 12:20
Пол: мужской
Откуда: World Ownage Organization

Непрочитанное сообщение ...just uno »

Но если уж спорить, то для начала нужно выработать критерии для сравнения....
Say yes. At least say hello.
maXx
Обитатель
Сообщения: 39
Зарегистрирован: Ср авг 03, 2005 22:41
Откуда: Выкса

Непрочитанное сообщение maXx »

qwerty писал(а): Недостатки(ИМХО) Паскаля:
1) Плохой компилятор :)
2) Мало кто пишет :)
3) Ненавижу ':='
......
......
Отвечу на некоторые пункты:
1) Плохой компилятор - это не недостаток языка, а недостаток среды разработки. Вообще у TurboPascal 7 может и плохой компилятор, а вот Delphi оптимизирует код иногда и получше сишника, - по крайней мере размеры экзэшников часто получаются меньше.
2) без комментариев
3) Ну и что?! А я вот в сишнике терпеть не могу "->" !!! Таких мелочей в любом языке нарыть можно, что никак не влияет на качество конечной программы.

По поводу критериев для сравнения.... Давайте какую-нибудь задачку несложную поставим, попробуем реализовать на разных языках... А потом сравним соотношение Размер/Быстродействие/ВремяРазработкиКода ?
...just uno
Истинный Wыксунец
Сообщения: 1082
Зарегистрирован: Чт июл 07, 2005 12:20
Пол: мужской
Откуда: World Ownage Organization

Непрочитанное сообщение ...just uno »

Давай. С радостью и удовольствием :). Например, такая задача:
Дано поле m на n клеток. В этом поле часть клеток являются запрещенными. Необходимо посчитать количество способов добраться из верхнего левого угла в правый нижний, если двигаться можно только вниз или вправо, и не проходя через запрещенные клетки.
Входные данные - размеры поля и координаты запр. клеток.
Думаю не очень сложно...
ИМХО лучше сделать консольное приложение - я на VC++, ты на Дельфях...
ЗЫ: Завтра с утра "опубликую" :)
Say yes. At least say hello.
...just uno
Истинный Wыксунец
Сообщения: 1082
Зарегистрирован: Чт июл 07, 2005 12:20
Пол: мужской
Откуда: World Ownage Organization

Непрочитанное сообщение ...just uno »

Чё-т не спалось... прога получилась всего 4,5кб. Тока не знаю как её тут опубликовать...
Вот код:

#include<iostream.h>

void main(){
short n,m,q;
short x,y;
long i,j;
unsigned long map[50][50];
for(i=0;i<50;i++)
for(j=0;j<50;j++)
map[j]=0;
cout<<"Input fileld size(0-50): ";
cin>>n>>m;
cout<<"Input quantity of banned cells(0-100) : ";
cin>>q;
for(i=0;i<q;i++){
cout<<"Coordinates of cell N"<<i+1<<" : ";
cin>>x>>y;
map[x-1][y-1]=-1;
}
for(i=0;i<m;i++)
if(map[0]+1)
map[0]=1;
else break;
for(i=0;i<n;i++)
if(map[0]+1)
map[0]=1;
else break;
for(j=1;j<n;j++)
for(i=1;i<m;i++)
if(map[j]+1){
if(map[i-1][j]+1)map[j]+=map[i-1][j];
if(map[j-1]+1)map[j]+=map[j-1];
}
cout<<map[m-1][n-1]<<endl;
}
Say yes. At least say hello.
maXx
Обитатель
Сообщения: 39
Зарегистрирован: Ср авг 03, 2005 22:41
Откуда: Выкса

Непрочитанное сообщение maXx »

Ну вот, и мой kod. Обычное консольное приложение на Delphi, размер экзэшника 4,50 КБ (4 608 байт).

А вот листинг:
//---------------------

program Project1;

{$APPTYPE CONSOLE}

var n,m,q,x,y: shortint;
var i,j: longint;
var map: array[0..50, 0..50] of integer;

begin
for i:=0 to 50 do
for j:=0 to 50 do
map[j]:=0;
write('Input fileld size(0-50): ');
read(n,m);
write('Input quantity of banned cells(0-100) : ');
read(q);
for i:=0 to q-1 do
begin
write('Coordinates of cell N', i+1, ': ');
read(x,y);
map[x-1][y-1]:=-1;
end;
for i:=0 to m-1 do
if(map[0]+1)<>0
then map[0]:=1
else break;
for i:=0 to n-1 do
if(map[0]+1)<>0
then map[0]:=1
else break;
for j:=1 to n-1 do
for i:=1 to m-1 do
if(map[j]+1)<>0 then
begin
if(map[i-1][j]+1)<>0 then inc(map[j], map[i-1][j]);
if(map[j-1]+1)<>0 then inc(map[j], map[j-1]);
end;
end.

------------------------------------------------------
...just uno
Истинный Wыксунец
Сообщения: 1082
Зарегистрирован: Чт июл 07, 2005 12:20
Пол: мужской
Откуда: World Ownage Organization

Непрочитанное сообщение ...just uno »

Ну зачем слизывать чужой код??? И массив map имеет тип не лонг, а беззнаковый лонг...
Во-вторых, код явно не короче... Ты просто выкинул некоторые строчки, а некоторые совместил....
Файл занимает не 4,5кб, а больше. Он требует rtl70.bpl для запуска...
Кстати, пример я подобрал плохой - никаких вычислительных нагрузок... Думаю, надо что-нибудь посеръёзней.... Например:
(Кто играл в "Братья Пилоты" наверное сталкивались с такой задачей...)
Дан сейф. На нём есть 16 ключей(4х4). Часть из них повёрнуты. Если какой либо ключ повернуть, то все ключи строки и столбца на перес. кторых находится данный ключ принимают обратное положение... Необходимо найти такую послед. поворотов ключей при которой все ключи окажутся повёрнутыми...
ЗЫ: Или сам что-нибудь предложи...
Say yes. At least say hello.
...just uno
Истинный Wыксунец
Сообщения: 1082
Зарегистрирован: Чт июл 07, 2005 12:20
Пол: мужской
Откуда: World Ownage Organization

Непрочитанное сообщение ...just uno »

Ну, мега-отцы паскаля, сможете ответить на вопрос - как на паскале провернуть следующий код:

char *a;
a=0xb800;
a[0]=65;
и так далее(работа с памятью напрямую)...

и

short *a;
a=malloc(20000);
a[...]=...
То же самое....
Say yes. At least say hello.
Дыбра
Добрый Админ
Сообщения: 5434
Зарегистрирован: Чт мар 31, 2005 16:54
Пол: мужской
Откуда: Выкса
Благодарил (а): 2 раза
Поблагодарили: 6 раз

Непрочитанное сообщение Дыбра »

qwerty писал(а):Ну, мега-отцы паскаля, сможете ответить на вопрос - как на паскале провернуть следующий код:

char *a;
a=0xb800;
a[0]=65;
и так далее(работа с памятью напрямую)...

и

short *a;
a=malloc(20000);
a[...]=...
То же самое....
А ты в ХР это пробовал запускать?
Администратор сайта "Виртуальная Выкса"
...just uno
Истинный Wыксунец
Сообщения: 1082
Зарегистрирован: Чт июл 07, 2005 12:20
Пол: мужской
Откуда: World Ownage Organization

Непрочитанное сообщение ...just uno »

Ну да. Я последние 3 месяца тока там...
А что не так?
Просто нам лабу задали - "любые 6 методов сортировок+ понты(диаграммы...)". Желательно чтоб было красиво. А поскольку первый семестр у нас Паскаль.... вот мучаюсь...
Пока сделал на АСМе(оформление: кнопки, эдиты... под ДОС)...
ЗЫ: Кстати к нам сегодня в Университет Н.Вирт приезжает... правда лекция будет на немецком :(
Say yes. At least say hello.
maXx
Обитатель
Сообщения: 39
Зарегистрирован: Ср авг 03, 2005 22:41
Откуда: Выкса

Непрочитанное сообщение maXx »

qwerty писал(а):Ну, мега-отцы паскаля, сможете ответить на вопрос - как на паскале провернуть следующий код:

char *a;
a=0xb800;
a[0]=65;
и так далее(работа с памятью напрямую)...

и

short *a;
a=malloc(20000);
a[...]=...
То же самое....
Уж не знаю как на стандартном Паскале будет, а на Delphi без проблем прокатывает такая вещь:

var a: ^char;
b: ^shortint;
begin
a:=Ptr($b800);
a^:=chr(65);
и так далее...

GetMem(b, 20000);
b^:=...;
и так далее...
end.

P.S. IMHO, это чистая случайность что первый пример под вындой нормально работает. Будь там не 0xB800 а что-нибудь другое, процесс может и ошибкой завершиться - если этот адрес лежит за пределами сегмента данных адресного пространства приложения.
Что касаемо второго примера - тут вообще просто: функция GetMem - аналог сишного malloc.
Всё вышенаписанное не претендует на общепринятую истину и является чистым ИМХО

Вернуться в «Программирование»