HLFX.Ru Forum Страницы (4): « 1 [2] 3 4 »
Показать все 60 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Флуд (https://hlfx.ru/forum/forumdisplay.php?forumid=11)
-- Очередная тема о программировании (https://hlfx.ru/forum/showthread.php?threadid=2348)


Отправлено DEAD MAN 04-10-2010 в 15:16:

Вроде как сделал я эту схему, скорее всего с ошибками, но всё-таки.
Теперь действительно сложная для меня вещь, на основе этой схемы(хотя можно и без неё) надо написать программу, которая считала бы функцию (из первого поста) по методу/условию (тоже из первого поста). Надеюсь (имя пользователя съел шамблер) сможет хотя бы тут помочь.


Отправлено Дядя Миша 05-10-2010 в 09:42:

Из всего что написал только break знаю
А что такое vqvod tablicq или SHAG FUNKCII я хз. Но я вполне допускаю, что это достойные, уважаемые люди, может даже тибетские монахи

Добавлено 05-10-2010 в 13:42:

ЗЫ. Никогда не пиши в алгоритме цыклы в виде for( int i ... за такое поушам надавать мало. Процессор ни про какие циклы не ведает.
Есть только условный и безусловные переходы.
Поэтому рисуешь вот так:

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено DEAD MAN 05-10-2010 в 11:59:

Цитата:
Дядя Миша писал:
А что такое vqvod tablicq или SHAG FUNKCII

Транслитом написаны действия. Ничего сам не придумывал, делал по примеру препода, она сама так писала, только на эстонском языке. Вот, например её поделки, квадратичное уравнение: http://elrond.tud.ttu.ee/material/k...0I/ruut.jsp.gif и тангенс: http://elrond.tud.ttu.ee/material/k...20I/tan.jsp.gif

А кусочки кода мне "помогли" написать.


Отправлено Дядя Миша 05-10-2010 в 12:28:

KUNI SAAB ?
поперхнулся чяем
Нет, я тебе вряд ли тут чем-то смогу помочь.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено PoD-Stas 05-10-2010 в 15:03:

DEAD MAN вообще какие-то очен ьстермные блок схемы вы юзаете о_0


Отправлено DEAD MAN 26-10-2010 в 16:19:

Эх. Ещё одна попытка. Только теперь уже с кодом.

Задание: Вывести на экран матрицу 5 на 5. Найти и вывести на экран самое большое чётное число из главной диагонали матрицы. А так же найти и вывести на экран самое малое нечётное число из побочной диагонали матрицы.

Вот, что я намудрил:

code:
#include <stdio.h> int main(void) { int i=0,j=0,max,min; int matrx[5][5]; for(i=1;i<6;i++) {for(j=1;j<6;j++) {matrx[i][j] = i*j;} } for (i=1;i<6;i++) { for(j=1;j<6;j++) {printf("%d\t",matrx[i][j] = i*j);} printf("\n"); } for(i=1;i<6;i++) { if(matrx[i][i]%2 == 0 && max < matrx[i][i]) max=matrx[i][i]; if(matrx[i][i]%2 == 1 && min > matrx[i][i]) min=matrx[i][i]; } printf("\nMAX = %d\nMIN= %d",max,min); getchar(); return 0; }


Проблема в том, что это чудо считает наиболее большим чётным числом - 26. И я не понимаю как проверить побочную диагональ(сейчас проверяется главная).


Отправлено Дядя Миша 26-10-2010 в 16:53:

DEAD MAN я уж хотел было сам наговнокодить, но тут в гугле вот чего нашел: http://programmersforum.ru/showthread.php?t=15801

Добавлено 26-10-2010 в 20:53:

DEAD MAN теперь по твоему коду скажу:

Цитата:
DEAD MAN писал:
for(i=1;i<6;i++)

вот за такое - руки отрывать надо. У тебя в массиве ПЯТЬ элементов, а ты лезешь в шестой. Твое персональное счастье, что в С++ нету экзепшенов на выход за пределы массива, поскольку под чистым Си твой код мигом вылетит с ошибкой. И правильно сделает.
Объясни, пожалуйста, почему ты оставляешь ячейки [0][0] в матрице непроинициализированными. и упорно лезешь за границы массива в каждом из циклов? Это вас в институте так учат?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено DEAD MAN 26-10-2010 в 17:11:

Цитата:
Дядя Миша писал:
поскольку под чистым Си твой код мигом вылетит с ошибкой

Дык, это и есть чистый Си и, хм, не вылетает. Мы на С++ не работаем.
Цитата:
Дядя Миша писал:
Объясни, пожалуйста, почему ты оставляешь ячейки [0][0] в матрице непроинициализированными

Хочу, что бы матрица начиналась с 1, а не с нуля. Так будет лучше:
code:
i=1;i<=5;i++
?
Цитата:
Дядя Миша писал:
Это вас в институте так учат?

Нет, это мой быдло код на основе небольшого примера, в котором самому надо было по заданию найти ошибки.

За ссылку спасибо. А что делать со странным числом 26, которое не входит в эту матрицу?


Отправлено Дядя Миша 26-10-2010 в 18:45:

Цитата:
DEAD MAN писал:
Дык, это и есть чистый Си и, хм, не вылетает. Мы на С++ не работаем.

А файлик твой с проектом какое расширение имеет? .cpp или .c ?

Добавлено 26-10-2010 в 22:45:

Цитата:
DEAD MAN писал:
А что делать со странным числом 26, которое не входит в эту матрицу?

прекратить читать мусор в стёке.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено DEAD MAN 26-10-2010 в 21:39:

Дядя Миша .c


Отправлено Дядя Миша 27-10-2010 в 09:38:

DEAD MAN и не вылетает? абамлеть!

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено AlMod 27-10-2010 в 09:59:

code:
#include <stdio.h> int main(void) { int i=0,j=0,max,min; int matrx[5][5]; for(i=1;i<6;i++) {for(j=1;j<6;j++) {matrx[i][j] = i*j;} } for (i=1;i<6;i++) { for(j=1;j<6;j++) {printf("%d\t",matrx[i][j] = i*j);} // Зачем matrx[i][j] = i*j? достаточно matrx[i][j] printf("\n"); } // Инициализировать кто будет за тебя? max = 0; min = i*i; for(i=1;i<6;i++) { if(matrx[i][i]%2 == 0 && max < matrx[i][i]) max=matrx[i][i]; // Не побочная диагональ, правильно так: if(matrx[6-i][i]%2 == 1 && min > matrx[6-i][i]) min=matrx[6-i][i]; } printf("\nMAX = %d\nMIN= %d",max,min); getchar(); return 0; }


Держи

__________________
Сайт поддержки кодеров на AMX Mod X


Отправлено Дядя Миша 27-10-2010 в 11:33:

Еще чуть-чуть и получится программа "Поезд"

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено DEAD MAN 27-10-2010 в 16:09:

Цитата:
AlMod писал:
Зачем matrx[i][j] = i*j? достаточно matrx[i][j]

Потому что с matrx[i][j] последние число в матрице почему-то 5 место 25. Но оказывается с просто i*j - работает правильно, без 26.

Так, что большое спасибо добрый человек. Сильно выручил.

Дядя Миша Сарказм? Если нет, то и в линуксе через Geany и в винде через Dev C++ всё прекрасно компилируется и работает.


Отправлено AlMod 28-10-2010 в 11:45:

Небольшое добавление - старайся избегать такого нагромождения в коде (здесь: много лишних циклов), все можно сделать намного компактнее

code:
#include <stdio.h> int main(void) { int max=0,min=25; int matrx[5][5]; for(int i=0;i<5;i++) { for(int j=0;j<5;j++) { matrx[i][j] = (i+1)*(j+1); printf("%d\t",matrx[i][j]); } printf("\n"); if(matrx[i][i]%2 == 0 && max < matrx[i][i]) { max=matrx[i][i]; } if(matrx[4-i][i]%2 == 1 && min > matrx[4-i][i]) { min=matrx[4-i][i]; } } printf("\nMAX = %d\nMIN = %d",max,min); getchar(); return 0; }

__________________
Сайт поддержки кодеров на AMX Mod X


Временная зона GMT. Текущее время 22:29. Страницы (4): « 1 [2] 3 4 »
Показать все 60 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024