У кого под рукой Си-компилятор? (см. 11-ое сообщение треда)
Во-первых, label...
не нужно описывать в начале
просто в функции где надо пишешь "my_label:" и где надо "goto my_label"

просто в функции где надо пишешь "my_label:" и где надо "goto my_label"

Спасибо, а во-вторых?...
Рамштайну - большое спасибо!
А во вторых, метки - это уж0с 

Да, знаю.
Но - любовь зла, полюбишь и метки!
Мммм, обожаю их!
Но - любовь зла, полюбишь и метки!
Мммм, обожаю их!

это не уж0с! это ЗЛО!
в небольших функциях (на пару десятков строк) метки вполне допустимы и сокращают количество букаф
в небольших функциях (на пару десятков строк) метки вполне допустимы и сокращают количество букаф... и развивают дурацкий стиль.
топикстартеру: признавайся, в фортране раньше прогал?
В любом случае, уничтожай в себе эту нездоровую любоь к меткам.
Я помню, как мой научник восхваливал фортран за простоту (типа не нужно лишних структур, всё строится на метках его программы отличались излишней нагромаждённостью, слабой читабельностью, игнорированием простейших оптимизаций.
Не, за всю жизнь работал в qbasic, PASCAL и C/С++
А метки люблю, потому что прощё как-то всё воспринимается с ними, особенно если перед глазами блок-схема алгоритма.
Люди, кому не в лом, можете запустить прогу (см. ниже). Она должна получать на входе положительное число и выдавать его двоичную запись с нужным (спрашивает в начале) количеством цифр после запятой. Прога делалась наспех, по старой памяти, лишь бы что-то было - никакого "стиля" не соблюдал, и алгоритм вряд ли оптимальный, так что прошу не язвить
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<stdio.h>
int odt, odk, k, m, Bila_tochka, tolko_chto;
double X, X_1;
void main
{ // начало основной программы
// Zapasaemsja nachalnimi dannimi
X=-1; // berjom tupoe znachenie
while (X<=0)
{
printf("Vvedite chislo:");
scanf("%lf", &X);
if (X<=0)
{
printf("Vvedite polozhitelnoe chislo!\n");
}
}
odk=0; // berjom tupoe znachenie
while (odk<1)
{
printf("Skolko hotite znakov posle zapjatoj v dvoichnoj zapisi (ne menshe odnogo!):");
scanf("%d", &odk);
if (odk<1)
{
printf("Kolichestvo znakov dolzhno bit' ne menshe odnogo!\n");
}
}
//Nachalis' vichislenija
Bila_tochka=0;
// Istchem naibolshee celoe m takoe, chto 2^m<=X
if(X>=1)
{
X_1=X;
m=-1;
while(X_1>=1)
{
m++;
X_1=X_1/2;
}
}
if(X<1)
{
X_1=X;
m=0;
while(X_1<1)
{
m--;
X_1=X_1*2;
}
}
printf("Dlja proverki: m=%d\n", m);
//nashli takoe m
if(m==0)
{
printf("1.");
odt=0;
Bila_tochka=1;
goto ONE;
}
if(m>=1)
{
printf("1");
odt=m;
goto ONE;
}
if(m==-1)
{
printf("0.1");
odt=0;
odk=odk-1;
Bila_tochka=1;
if(odk>0) goto ONE;
if(odk==0) goto TWO;
}
if(m<-1)
{
if(odk>(-1)*m)
{
printf("0.");
for(k=1;k<-1)*m-1);k++)
{
printf("0");
}
printf("1");
odt=0;
Bila_tochka=1;
odk=odk+m;
goto ONE;
}
if(odk=(-1)*m)
{
printf("0.");
for(k=1;k<-1)*m-1);k++)
{
printf("0");
}
printf("1");
goto TWO;
}
if(odk<(-1)*m)
{
printf("0.");
for(k=1;k<=odk;k++)
{
printf("0");
}
goto TWO;
}
}
ONE:
tolko_chto=1;
goto THREE;
THREE:
if(tolko_chto==1)
{
X=X-(2^m);
goto FOUR;
}
if(tolko_chto==0)
{
goto FOUR;
}
FOUR:
if2^(m-1>X)
{
printf("0");
tolko_chto=0;
goto FIVE;
}
if2^(m-1<=X)
{
printf("1");
tolko_chto=1;
goto FIVE;
}
FIVE:
m=m-1;
if(odt>0)
{
odt=odt-1;
if(odt==0)
{
printf(".");
Bila_tochka=1;
goto THREE;
}
if(odt>0)
{
goto THREE;
}
}
if(odt==0)
{
odk=odk-1;
if(odk==0)
{
goto TWO;
}
if(odt>0)
{
goto THREE;
}
}
TWO: printf ("Programma zakonchila rabotu\n");
} //konec
А метки люблю, потому что прощё как-то всё воспринимается с ними, особенно если перед глазами блок-схема алгоритма.
Люди, кому не в лом, можете запустить прогу (см. ниже). Она должна получать на входе положительное число и выдавать его двоичную запись с нужным (спрашивает в начале) количеством цифр после запятой. Прога делалась наспех, по старой памяти, лишь бы что-то было - никакого "стиля" не соблюдал, и алгоритм вряд ли оптимальный, так что прошу не язвить
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<stdio.h>
int odt, odk, k, m, Bila_tochka, tolko_chto;
double X, X_1;
void main
{ // начало основной программы
// Zapasaemsja nachalnimi dannimi
X=-1; // berjom tupoe znachenie
while (X<=0)
{
printf("Vvedite chislo:");
scanf("%lf", &X);
if (X<=0)
{
printf("Vvedite polozhitelnoe chislo!\n");
}
}
odk=0; // berjom tupoe znachenie
while (odk<1)
{
printf("Skolko hotite znakov posle zapjatoj v dvoichnoj zapisi (ne menshe odnogo!):");
scanf("%d", &odk);
if (odk<1)
{
printf("Kolichestvo znakov dolzhno bit' ne menshe odnogo!\n");
}
}
//Nachalis' vichislenija
Bila_tochka=0;
// Istchem naibolshee celoe m takoe, chto 2^m<=X
if(X>=1)
{
X_1=X;
m=-1;
while(X_1>=1)
{
m++;
X_1=X_1/2;
}
}
if(X<1)
{
X_1=X;
m=0;
while(X_1<1)
{
m--;
X_1=X_1*2;
}
}
printf("Dlja proverki: m=%d\n", m);
//nashli takoe m
if(m==0)
{
printf("1.");
odt=0;
Bila_tochka=1;
goto ONE;
}
if(m>=1)
{
printf("1");
odt=m;
goto ONE;
}
if(m==-1)
{
printf("0.1");
odt=0;
odk=odk-1;
Bila_tochka=1;
if(odk>0) goto ONE;
if(odk==0) goto TWO;
}
if(m<-1)
{
if(odk>(-1)*m)
{
printf("0.");
for(k=1;k<-1)*m-1);k++)
{
printf("0");
}
printf("1");
odt=0;
Bila_tochka=1;
odk=odk+m;
goto ONE;
}
if(odk=(-1)*m)
{
printf("0.");
for(k=1;k<-1)*m-1);k++)
{
printf("0");
}
printf("1");
goto TWO;
}
if(odk<(-1)*m)
{
printf("0.");
for(k=1;k<=odk;k++)
{
printf("0");
}
goto TWO;
}
}
ONE:
tolko_chto=1;
goto THREE;
THREE:
if(tolko_chto==1)
{
X=X-(2^m);
goto FOUR;
}
if(tolko_chto==0)
{
goto FOUR;
}
FOUR:
if2^(m-1>X)
{
printf("0");
tolko_chto=0;
goto FIVE;
}
if2^(m-1<=X)
{
printf("1");
tolko_chto=1;
goto FIVE;
}
FIVE:
m=m-1;
if(odt>0)
{
odt=odt-1;
if(odt==0)
{
printf(".");
Bila_tochka=1;
goto THREE;
}
if(odt>0)
{
goto THREE;
}
}
if(odt==0)
{
odk=odk-1;
if(odk==0)
{
goto TWO;
}
if(odt>0)
{
goto THREE;
}
}
TWO: printf ("Programma zakonchila rabotu\n");
} //konec
> Не, за всю жизнь работал в qbasic
> А метки люблю, потому что прощё как-то всё воспринимается
> с ними, особенно если перед глазами блок-схема алгоритма.
"It is practically impossible to teach good programming to students
that have had a prior exposure to BASIC: as potential programmers
they are mentally mutilated beyond hope of regeneration."
---
"Стране нужен МЕТАН."
> А метки люблю, потому что прощё как-то всё воспринимается
> с ними, особенно если перед глазами блок-схема алгоритма.
"It is practically impossible to teach good programming to students
that have had a prior exposure to BASIC: as potential programmers
they are mentally mutilated beyond hope of regeneration."
---
"Стране нужен МЕТАН."
#include <stdio.h>это практически несовместные строки, пиши на одном каком-нибудь языке, например на С
m:=m-1;
мои познания не настолько глубоки, чтобы различать си и си++
как исправить так, чтобы прога была на си++?
я думаю, из той кучи библиотек, которую я, как всегда, подключил, нужна одна, максимум две
скорее всего, не нужны матх.аш и стринг.аш
как исправить так, чтобы прога была на си++?
я думаю, из той кучи библиотек, которую я, как всегда, подключил, нужна одна, максимум две
скорее всего, не нужны матх.аш и стринг.аш
тебе нужно писать на С++ или С, но никак не на паскале
мне нужно на Си++
или вместо
m:=m-1;
в си++ надо писать чо-нить типа этого
m_new:=m;
m:=m_new-1;
да?
m:=m-1;
в си++ надо писать чо-нить типа этого
m_new:=m;
m:=m_new-1;
да?
вторая строчка написана на паскале или паскалеподобном языке, скорее всего
а как в си++ надо?
> а как в си++ надо?
А книжку прочитать?
---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."
А книжку прочитать?
---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."
почитай какую-нить простейшую книжку по с или с++
Ты пока непонятно на чем пишешь.
Ты пока непонятно на чем пишешь.
m--;
or
m-=1;
or
m=m-1;
or
m-=1;
or
m=m-1;
вот блин, жалко ответить про какой-то несчастный знак равно/присваивания 

вот блин, жалко ответить про какой-то несчастный знак равно/присваиванияу тебя там не только он один... Или ты будешь весь свой код верифаить в форуме?
Особенно понравилось это:

if (X<=0)Тебе действительно книжку надо читать, т.к. с ветвлением ты плохо знаком.
{
printf("Vvedite polozhitelnoe chislo!\n");
}
...
if(X>=1)
{
...
}
if(X<1)
...

да знаю я про
if(X<1) {...}
else {...}
и про то, что метки - это плохой стиль
Ребят, вы можете что-нибудь по существу дела сказать, а не к стилю прикапываться?
Мне главное, чтоб рез-т был, а не бантики всюду подвязаны и ГОСТы выдержаны.
if(X<1) {...}
else {...}
и про то, что метки - это плохой стиль
Ребят, вы можете что-нибудь по существу дела сказать, а не к стилю прикапываться?
Мне главное, чтоб рез-т был, а не бантики всюду подвязаны и ГОСТы выдержаны.
ну и быдлопрограмма, такого гавеного кода давно не видел
a=b (a:=b в паскале) присваивание
a==b (a=b в паскале, результат bool) равенство, и чо эта тема делает в ХиС >> Development
a=b (a:=b в паскале) присваивание
a==b (a=b в паскале, результат bool) равенство, и чо эта тема делает в ХиС >> Development

открой для себя функции и забудь про метки, читать код невозможно
Ребят, вы можете что-нибудь по существу дела сказать, а не к стилю прикапываться?По существу: сперва ознакомься подробнее с простейшими элеметнами языка, научись их активно использовать, а потом программируй на этом языке. Я так понял, что ты очень мало писал на паскале и на сях: ни в одном из этих языков метки не приветствуются (и, вообще-то, начинающих про это извещают обычно).
Ребят, вы можете что-нибудь по существу дела сказать, а не к стилю прикапываться?Часа два назад в твоем сообщении было, что ты прогу кому-то на заказ пишешь?
Мне главное, чтоб рез-т был, а не бантики всюду подвязаны и ГОСТы выдержаны.
Мало того что негде писать, так еще и не делал этого ни разу. Жуть...
Делал, но давно это было, уж года два как, всё теперь позабылось...
Хоть благодаря вам что-нибудь освежу в памяти
Хоть благодаря вам что-нибудь освежу в памяти

начни новый топик
"Напишите простую программу на си"
Ребята, напишите мне простую программу, которая считывает натуральное число и печатает его двоичную запись.
всем откликнувшимся спасибо!
"It is practically impossible to teach good programming to studentsПойду убью себя апстену.
that have had a prior exposure to BASIC: as potential programmers
they are mentally mutilated beyond hope of regeneration."
Пойду убью себя апстену.Пожалей стену! =/
Ты учился программированию по бейсику? 

Оставить комментарий
smedya
Подзабыл.Чтобы ввести в срр-прогу метки 1, ..., 5, нужно ли их описывать в начале?
(типа там же, где описание переменных, надо ли писать: lable 1, 2, 3, 4, 5; ?)
В теле программы они идут просто:
1:
<... >
2:
<... >
3:
<... >
4:
<... >
5:
<... >
Правильно?