Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Переписать на С++

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Переписать на С++
Имя
Сообщение << Старые топики   Новые топики >>
Переписать на С++ - 2007-12-08 20:53:13.100000   
t3rmin41

Сообщений: 245
Оценки: 0
Присоединился: 2007-11-12 14:06:01.393333
В общем, ситуация такая:

моей бывшей однокласснице нужно писать программы на 2 языках: Паскаль и С, она меня попросила помочь.

Код на Паскаль я сочинил (хотя он, конечно, сложноватый не в меру), а на С уже время не хватает. Если у кого есть время, напишите ту же программу на С.

Код на Паскаль:

type &nbsp;&nbsp;&nbsp; student=record &nbsp;&nbsp;&nbsp; imia, fam: string; &nbsp;&nbsp;&nbsp; grupa: integer; &nbsp;&nbsp;&nbsp; end; &nbsp;&nbsp;&nbsp; var i, N, h, max, maxg:integer; &nbsp;&nbsp;&nbsp; stu:array [1..100] of student; &nbsp;&nbsp;&nbsp; matrix: array [1..100, 1..2] of byte; {100 - max cislo grupp} procedure sortarray; var e,x,y:integer; begin for x:=1 to N do begin for y:=x to N-1 do begin e:=stu[x].grupa; &nbsp; if e&gt;stu[y+1].grupa then begin &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stu[x]:=stu[y+1]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stu[y+1].grupa:=e; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end; end; end; end; &nbsp;&nbsp; procedure naiti(P:integer); var ch,k,S,d:byte; begin for ch:=1 to P do begin s:=0; for k:=ch to P do begin if ((stu[ch].grupa=stu[k].grupa) and (stu[ch].grupa&lt;&gt;stu[ch-1].grupa)) then begin &nbsp; s:=s+1; &nbsp; matrix[ch,1]:=stu[ch].grupa; &nbsp; matrix[ch,2]:=s; end; end; end; writeln; write('nomer gruppy&nbsp;&nbsp; &nbsp;: '); for d:=1 to P do begin if matrix[d,1]&lt;&gt;0 then write(matrix[d,1],' '); end; writeln; write('kol-vo studentov:'); for d:=1 to P do begin if matrix[d,2]&lt;&gt;0 then write(matrix[d,2],' '); end; end;{procedure} begin &nbsp;&nbsp;&nbsp; write ('Vvedite chislo&nbsp;studentov N = '); &nbsp;&nbsp;&nbsp; readln(N); &nbsp;&nbsp;&nbsp; for i:=1 to N do &nbsp;&nbsp;&nbsp;&nbsp; begin &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write('VVedite imia ',i, ' studenta - '); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; readln(stu[i].imia); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write('Vvedite familiu&nbsp;', i, ' studenta - '); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; readln(stu[i].fam); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write('Vvedite grupu&nbsp;', i, ' studenta - '); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; readln(stu[i].grupa); &nbsp;&nbsp;&nbsp;&nbsp; end; for h:=1 to 100 do {zapolniaet matricu [1..100,1..2] nuliami} begin matrix[h,1]:=0; matrix[h,2]:=0; end; sortarray; {sortiruet zapisi} naiti(N); {naxodit, skolko studentov v kakoi grupe. N - kolichestvo vvedennyx studentov} writeln; writeln; writeln('spisok'); max:=0; for h:=1 to 100 do begin if matrix[h,2]&gt;max then begin &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; max:=matrix[h,2]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxg:=matrix[h,1]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end; end; writeln; for h:=1 to 100 do begin if (stu[h].grupa=maxg) then writeln(stu[h].imia,' ',stu[h].fam,' ',stu[h].grupa); end; readln; end.
 
+2 за рабочий код в репутацию гарантирую.

Update: исходник исправлен
Post #: 1
RE: Переписать на С++ - 2007-12-08 23:35:32   
kosolapov

Сообщений: 37
Оценки: 0
Присоединился: 2007-07-21 05:40:00.330000
Лучше бы задачу саму написал_)
Post #: 2
RE: Переписать на С++ - 2007-12-08 23:52:28.103333   
t3rmin41

Сообщений: 245
Оценки: 0
Присоединился: 2007-11-12 14:06:01.393333
Нужно условие задачи? Пожалуйста:
 
пользователь вводит количество N студентов. Затем N раз заполняет данные - имя, фамилия, номер группы студента.
Программа находит, сколько студентов в каждой группе и выводит данные студентов, которые числятся в самой большой группе.
 
В программе должна использоваться процедура или функция, находящая и выдающая количество студентов в каждой группе. Переменные в процедуре должны использоваться локальные, глобальные не использовать.(как видно, требования насчёт переменных я не придерживался, но если будете писать, то в идеале будет, если напишите как требуется).
 
А код свой я оставил, чтобы не было постов и флуда "Ещё один леньтяй, хочет на чужом труде выехать"
Post #: 3
RE: Переписать на С++ - 2007-12-09 02:59:37.390000   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
скачай программку p2c и конвертни.
Post #: 4
RE: Переписать на С++ - 2007-12-09 11:56:40.540000   
t3rmin41

Сообщений: 245
Оценки: 0
Присоединился: 2007-11-12 14:06:01.393333
Одна проблема - у меня Windows а не Linux, а р2с для Linux только, насколько я понял.
Post #: 5
RE: Переписать на С++ - 2007-12-09 13:02:27.203333   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
ох, блин, мне эти вендусятники, дрожащие от страха при слове "компиляция".

вот здесь лежат сорцы p2c.
устанавливаешь MinGW и компиляешь там p2c – это делается тривиально командой make в директории куда распаковывал. потом используешь созданный бинарник p2c.

ладно, держи:/* Output from p2c, the Pascal-to-C translator */ /* From input file "test.pas" */ #include "p2c.h" typedef struct student { Char imia[256], fam[256]; long grupa; } student; Static long i, N, h, max, maxg; Static student stu[100]; Static uchar matrix[100][2]; /*100 - max cislo grupp*/ Static Void sortarray() { long e, x, y, FORLIM, FORLIM1; FORLIM = N; for (x = 0; x &lt; FORLIM; x++) { FORLIM1 = N; for (y = x + 1; y &lt; FORLIM1; y++) { e = stu[x].grupe; /* p2c: test.pas, line 16: * Warning: No field called GRUPE in that record [288] */ if (e &gt; stu[y].grupe) { /* p2c: test.pas, line 17: * Warning: No field called GRUPE in that record [288] */ stu[x] = stu[y]; stu[y].grupa = e; } } } } Static Void naiti(P) long P; { uchar ch, k, S, d; for (ch = 1; ch &lt;= P; ch++) { S = 0; for (k = ch - 1; k &lt; P; k++) { if (stu[ch - 1].grupa == stu[k].grupa && stu[ch - 1].grupa != stu[ch - 2].grupa) { S++; matrix[ch - 1][0] = stu[ch - 1].grupa; matrix[ch - 1][1] = S; } } } printf("\nnomer gruppy : "); for (d = 0; d &lt; P; d++) { if (matrix[d][0] != 0) printf("%12d ", matrix[d][0]); } printf("\nkol-vo studentov:"); for (d = 0; d &lt; P; d++) { if (matrix[d][1] != 0) printf("%12d ", matrix[d][1]); } } /*procedure*/ main(argc, argv) int argc; Char *argv[]; { long FORLIM; PASCAL_MAIN(argc, argv); printf("Vvedite chislo studentov N = "); scanf("%ld%*[^\n]", &N); getchar(); FORLIM = N; for (i = 1; i &lt;= FORLIM; i++) { printf("VVedite imia %12ld studenta - ", i); gets(stu[i - 1].imia); printf("Vvedite familiu %12ld studenta - ", i); gets(stu[i - 1].fam); printf("Vvedite grupu %12ld studenta - ", i); scanf("%ld%*[^\n]", &stu[i - 1].grupa); getchar(); } for (h = 1; h &lt;= 100; h++) { /*zapolniaet matricu [1..100,1..2] nuliami*/ matrix[h - 1][0] = 0; matrix[h - 1][1] = 0; } sortarray(); /*sortiruet zapisi*/ naiti(N); /*naxodit, skolko studentov v kakoi grupe. N - kolichestvo vvedennyx studentov*/ printf("\n\nspisok\n"); max = 0; for (h = 1; h &lt;= 100; h++) { if (matrix[h - 1][1] &gt; max) { max = matrix[h - 1][1]; maxg = matrix[h - 1][0]; } } putchar('\n'); for (h = 1; h &lt;= 100; h++) { if (stu[h - 1].grupa == maxg) printf("%s %s %12ld\n", stu[h - 1].imia, stu[h - 1].fam, stu[h - 1].grupa); } scanf("%*[^\n]"); getchar(); exit(EXIT_SUCCESS); } /* End. */ содержимое p2c.h, я уж не буду приводить. всё равно ведь преподу не стоит демонстрировать автоматизм трансляции из паскаля в це, всё равно править придётся.
зы. скомпилять и проверить результат не удалось, ибо в твоём сорце ошибка. исправлять лень.
Post #: 6
RE: Переписать на С++ - 2007-12-09 14:39:28.650000   
Alaget

Сообщений: 330
Оценки: 0
Присоединился: 2007-11-08 15:57:53.170000
rgo так что получается если я хорошо знаю паскаль, то си учить вовсе не объязательно, и ещё я смогу по Linux сразу програмировать.
Post #: 7
RE: Переписать на С++ - 2007-12-09 14:50:58.653333   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
проще, пожалуй, использовать fpc или gpc. Я не знаю, как там с привязками к libc или syscall'ам, или gtk и всем прочим библиотекам, но по-любасу можно. А! кстати, AFAIK, gpc умеет включать C-шные хедеры, с тем чтобы использовать оттуда типы/функции. То есть, в теории, проблем быть не должно.
Post #: 8
RE: Переписать на С++ - 2007-12-09 16:20:16.816666   
t3rmin41

Сообщений: 245
Оценки: 0
Присоединился: 2007-11-12 14:06:01.393333
rgo, я проверял паскалевский код - он рабочий. Результаты даёт верные.
Post #: 9
RE: Переписать на С++ - 2007-12-09 17:19:37.683333   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: t3rmin41
rgo, я проверял паскалевский код - он рабочий. Результаты даёт верные.

быть того не может. в student нету поля grupe:[rgo tmp]$ fpc tmp.pas Free Pascal Compiler version 2.0.4 [2006/11/14] for i386 Copyright (c) 1993-2006 by Florian Klaempfl Target OS: Linux for i386 Compiling tmp.pas tmp.pas(16,13) Error: Unknown record field identifier "GRUPE" tmp.pas(17,18) Error: Unknown record field identifier "GRUPE" tmp.pas(102) Fatal: There were 2 errors compiling module, stopping tmp.pas(102) Fatal: Compilation aborted Error: /usr/bin/ppc386 returned an error exitcode (normal if you did not specify a source file to be compiled)
Post #: 10
RE: Переписать на С++ - 2007-12-09 17:34:00.130000   
t3rmin41

Сообщений: 245
Оценки: 0
Присоединился: 2007-11-12 14:06:01.393333
блин, точно. там должно быть не .grupe a .grupa. И везде где не .grupa(е) должно быть .grupa

Исходник поправил.

BTW, попробовал я собрать p2c, ничего не получилось - батник выкидывает "#" is not recognised as internal or external command or operator и всё такое в том же духе. Единственное что делает -  пишет только строки где @echo  и всё.

Запускал я makefile сделав из него makefile.bat
Post #: 11
RE: Переписать на С++ - 2007-12-09 19:41:52.840000   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: t3rmin41
блин, точно. там должно быть не .grupe a .grupa. И везде где не .grupa(е) должно быть .grupa

Исходник поправил.

BTW, попробовал я собрать p2c, ничего не получилось - батник выкидывает "#" is not recognised as internal or external command or operator и всё такое в том же духе. Единственное что делает - пишет только строки где @echo и всё.

Запускал я makefile сделав из него makefile.bat

потому как для сборки тебе надо поставить MinGW: MS видите ли, игнорирует стандарты POSIX, и для совместимости приходится ставить сторонние разработки, включающие в себя sh, make, cc, ld и ряд других утилит. Makefile – это не батник, это Makefile, который должен обрабатываться утилитой make. Причём этот makefile не будет обрабатываться ни make'ом от MS, ни make'ом от Borland. это Makefile для GNU make.
Post #: 12
RE: Переписать на С++ - 2007-12-09 20:02:11.530000   
t3rmin41

Сообщений: 245
Оценки: 0
Присоединился: 2007-11-12 14:06:01.393333
ОК, попробую. Правда, сегодня времени нету уже, так что позже.
Post #: 13
RE: Переписать на С++ - 2007-12-09 23:31:47.543333   
kreol

Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666
довольно галимый, но рабочий код:
//--------------------------------------------------------------------------- #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused #include "string.h" #include "stdlib.h" #include "iostream.h" struct student { std::string name; std::string surname; int group; }; struct group { int number; // номер группы int count; // сколько раз встречается }; // возвращает номер группы, которая встречается больше всего раз int MaxGroup(group gr[], int grCount) { int max = 0; for (int i = 1; i &lt;= grCount; i++) { if (gr[i].count &gt; gr[max].count) { max = i; } } return max; } void ShowMaxGroup(student st[], int stCount, int maxGrNumber) { cout &lt;&lt; "Group with max number of students: " &lt;&lt; maxGrNumber &lt;&lt; endl; for (int i = 0; i &lt; stCount; i++) { if (st[i].group == maxGrNumber) { cout &lt;&lt; i + 1 &lt;&lt; ": " &lt;&lt; st[i].name &lt;&lt; " " &lt;&lt; st[i].surname &lt;&lt; endl; } } } int main(int argc, char* argv[]) { int N; student st[100]; int grCount = 0; group gr[100]; cout &lt;&lt; "Enter number of students: "; cin &gt;&gt; N; cout &lt;&lt; "Enter students data: " &lt;&lt; endl; for (int i = 0; i &lt; N; i++) { cout &lt;&lt; "sudent # " &lt;&lt; i + 1 &lt;&lt; endl; cout &lt;&lt; "name: "; cin &gt;&gt; st[i].name; cout &lt;&lt; "surname: "; cin &gt;&gt; st[i].surname; cout &lt;&lt; "group: "; cin &gt;&gt; st[i].group; cout &lt;&lt; endl; int j = 0; while (j &lt; grCount && gr[j].number != st[i].group) j++; if (gr[j].number == st[i].group) { gr[j].count++; } else { gr[grCount].number = st[i].group; gr[grCount].count = 1; grCount++; } } int maxGr = MaxGroup(gr, grCount); ShowMaxGroup(st, N, gr[maxGr].number); cin &gt;&gt; N; return 0; } //---------------------------------------------------------------------------
Post #: 14
RE: Переписать на С++ - 2007-12-10 00:16:52.323333   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: t3rmin41
ОК, попробую. Правда, сегодня времени нету уже, так что позже.

в том что я привёл надо исправить всякие Static на static (или вообще убрать), Void->void, Char->char, PASCAL_MAIN->нафиг, ну и две ошибочные строки которые предварены комментариями от p2c. так что вовсе необязательно чего-то теперь компилировать ;)
Post #: 15
RE: Переписать на С++ - 2007-12-10 00:34:34.150000   
t3rmin41

Сообщений: 245
Оценки: 0
Присоединился: 2007-11-12 14:06:01.393333
quote:

ORIGINAL: kreol

довольно галимый, но рабочий код:

 
Ты сам хоть код компилил? У меня не выдает никакого ответа, кроме "Max group bla bla bla&nbsp;0". При том, надо не просто найти группу с максимальным количеством студентов (это несложно), а вывести на экран, сколько в каждой группе студентов + список студентов&nbsp;в максимальной группе.

Update: rgo получает обещанные +2.

Если кто-то желает ещё получить, выкладывайте код - ещё 2 человекам так и быть, поставлю.
Post #: 16
RE: Переписать на С++ - 2007-12-10 01:17:36.593333   
kreol

Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666

quote:

ORIGINAL: t3rmin41

Ты сам хоть код компилил? У меня не выдает никакого ответа, кроме "Max group bla bla bla 0". При том, надо не просто найти группу с максимальным количеством студентов (это несложно), а вывести на экран, сколько в каждой группе студентов + список студентов в максимальной группе.

В условии было сказано: "Программа находит, сколько студентов в каждой группе и выводит данные студентов, которые числятся в самой большой группе." Сколько в каждой группе студентов моя программа находит и сохраняет в массив gr, выводить эту информацию на экран по твоему условию не надо. Все остальные условия ("вывести на экран … список студентов в максимальной группе") выполнены. Почему у тебя не работает, это уже вопрос не ко мне. Возможно, не правильно вводишь информацию (дополнительных проверок я не ставил). Пример работы моей программы:
quote:


Enter number of students: 6
Enter students data:
student # 1
name: ivan
surname: ivanov
group: 111

student # 2
name: petr
surname: petrov
group: 222

student # 3
name: sidor
surname: sidorov
group: 333

student # 4
name: stepan
surname: stepanov
group: 222

student # 5
name: mark
surname: markov
group: 333

student # 5
name: albert
surname: albertov
group: 333

Group with max number of students: 333
3: sidor sidorov
5: albert albertov
6: stepan stepanov

Больше всего людей в группе 333, в неё входят студенты под номерами 3 (sidor sidorov), 5 (5: albert albertov) и 6 (stepan stepanov). Что не правильно??
Post #: 17
RE: Переписать на С++ - 2007-12-10 01:31:41.860000   
t3rmin41

Сообщений: 245
Оценки: 0
Присоединился: 2007-11-12 14:06:01.393333
*чешет репу* нда, чё-то я неправильно условие написал.
 
Я пользуюсь Borland 5.5.1. Программа компилится, но опять выдало group with max number of students: 0.
 
Какие данные я могу ввести неправильно? Разве что номер группы должен быть целым числом. Проверял - всё нормально я ввёл, а результата - нет.
Специально проверил с теми именами и номерами, что у тебя - тот же 0. Каким компилятором пользуешься? Если Dev-C++, то всё более или менее понятно.
Post #: 18
RE: Переписать на С++ - 2007-12-10 01:51:20.890000   
kreol

Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666
Охохооох, как же я люблю эти плюсы… Я делал в шестом билдере, у меня всё работает без запинки, в чём может быть трабл, даже не могу представить. Можешь прогнать в отладчике, посмотреть, на каком месте сбой (посмотри состояние массивов после заполнения и результат функции MaxGroup).
Вообще буквально неделю назад было у меня общение с одним товарищем. Я ему давал код, который у меня прекрасно работал. Он запускал у себя, и этот код вылетал просто на символе амперсанда при передаче параметра по ссылке. Тогда я решил, что всё дело в среде и переслал ему свою IDE - Borland C++ 3.1 (для доса который). Угу, как бы не так, даже моя среда разработки у него на компьютере не воспринимала передачу по ссылке. Так что тут чёрт его знает от чего всё зависит.
Post #: 19
RE: Переписать на С++ - 2007-12-10 07:23:23.613333   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25

quote:

ORIGINAL: kreol

Охохооох, как же я люблю эти плюсы… Я делал в шестом билдере, у меня всё работает без запинки, в чём может быть трабл, даже не могу представить. Можешь прогнать в отладчике, посмотреть, на каком месте сбой (посмотри состояние массивов после заполнения и результат функции MaxGroup).
Вообще буквально неделю назад было у меня общение с одним товарищем. Я ему давал код, который у меня прекрасно работал. Он запускал у себя, и этот код вылетал просто на символе амперсанда при передаче параметра по ссылке. Тогда я решил, что всё дело в среде и переслал ему свою IDE - Borland C++ 3.1 (для доса который). Угу, как бы не так, даже моя среда разработки у него на компьютере не воспринимала передачу по ссылке. Так что тут чёрт его знает от чего всё зависит.

ну почему же чёрт знает… просто не надо использовать неинициализированные данные. В данной ситуации у тебя массив gr нигде не инициализируется. Удивительно что это хоть где-то сработало.
Post #: 20
RE: Переписать на С++ - 2007-12-10 09:28:15.390000   
Kill_em_all

Сообщений: 395
Оценки: 0
Присоединился: 2005-03-25 22:40:01
quote:

Код на Паскаль я сочинил (хотя он, конечно, сложноватый не в меру), а на С уже время не хватает. Если у кого есть время, напишите ту же программу на С.


За это время уже бы 100 раз написал на Си
Post #: 21
RE: Переписать на С++ - 2007-12-10 14:32:24.456666   
kreol

Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666

quote:

ORIGINAL: rgo

ну почему же чёрт знает… просто не надо использовать неинициализированные данные. В данной ситуации у тебя массив gr нигде не инициализируется. Удивительно что это хоть где-то сработало.

А йопт, точно =) Как-то все переменные main'а воспринимаются по привычке как глобальные, а глобальные сами инициализирубтся нулями. Может тогда ещё объяснишь, почему на двух разным машинах распознаётся или не распознаётся амперсанд при передаче по ссылке, ну например в функции void draw(int& x, int &y, int r) ? Тут то уж точно дело не в инициализированных переменных =)
Post #: 22
RE: Переписать на С++ - 2007-12-10 16:39:37.086666   
t3rmin41

Сообщений: 245
Оценки: 0
Присоединился: 2007-11-12 14:06:01.393333
quote:

ORIGINAL: kreol

например в функции void draw(int&amp; x, int &amp;y, int r)


Как-то странно ты передаёшь ссылки - то int& х,  то int &y) В смысле то амперсанд у типа, то у переменной стоит.

quote:

&nbsp;&nbsp;Как-то все переменные main'а воспринимаются по привычке как глобальные, а глобальные сами инициализирубтся нулями.


Вот-вот. Для этого в паскалевском коде я и писал

for h:=1 to 100 do {zapolniaet matricu [1..100,1..2] nuliami} begin matrix[h,1]:=0; matrix[h,2]:=0; end;
 
потому что в этой матрице может оказаться что угодно
Post #: 23
RE: Переписать на С++ - 2007-12-10 17:45:56.770000   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: kreol
Может тогда ещё объяснишь, почему на двух разным машинах распознаётся или не распознаётся амперсанд при передаче по ссылке, ну например в функции void draw(int& x, int &y, int r) ? Тут то уж точно дело не в инициализированных переменных =)

не знаю. надо видеть код, который то распознаётся, то нет.
Post #: 24
RE: Переписать на С++ - 2007-12-10 21:57:05.563333   
weak spirit

Сообщений: 56
Оценки: 0
Присоединился: 2007-09-30 18:40:25.726666

quote:

ORIGINAL: rgo

не знаю. надо видеть код, который то распознаётся, то нет.

void draw (int& x) { } void main(void) { } Ну как? Так понятнее? =)
Post #: 25
RE: Переписать на С++ - 2007-12-10 23:01:43.586666   
kreol

Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666

quote:

ORIGINAL: weak spirit

void draw (int& x) { } void main(void) { }

Если быть более точным,
void draw (int& x, int& y, int r) { } void main(void) { int x = 10; int y = 10; int r = 5; draw (x, y, 5) },
но ругается именно на амперсанд в объявлении draw.
Post #: 26
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Переписать на С++







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.