Вопрос № 113595: Помогите, пожалуйста, переделать программу, точнее, сделать ее с функциями, что бы не три раза вводить массив, и не три раза считать, и не три раза выводить, а сделать это один раз с использованием функций (Программа для определения местоположения (н...Вопрос № 113606: Уважаемые експерты помогите решить задачу на плюсах
суть в том что функция print (в примере) должна использовать арифметику указателей (если возможно) б иначе придется 800 сторок проги переписывать.
суть примера в том что создаеться 2 (хотя м...Вопрос № 113665: Даны вещественные массивы A[3][5],V[3][5].Для каждого массива определить номер столбца с наибольшим количеством положительных элементов.
Я знаю что задача уже была на сайте, но мне нужно чтобы все было сделано с функциями и самым наипростей...Вопрос № 113667: Описать процедуру SumDigit(N,S), находящую сумму цифр S целого числа N (N — входной, S — выходной параметр). Используя эту процедуру, найти суммы цифр пяти данных чисел.
Помогите написать на Си....Вопрос № 113676: Добрый вечер!У меня небольшие затруднения с бинарными деревьми... не могу организовать простейшее добавление...а что уж говорить обо всем остальном... я вообще не понимаю для чего они нужны(((...Вопрос № 113683: 1) Описать нерекурсивную функцию NOD2(A,B) целого типа, находящую наибольший общий делитель (НОД) двух натуральных чисел A и B, используя алгоритм Евклида: НОД(A,B)
= НОД(B mod A,A), если A <> 0; НОД(0,B) = B. С помощью этой функции найти наибо...Вопрос № 113716: Здравствуйте, уважаемые эксперты!
Задали мне написать программу с использованием подпрограмм, но, прочитав учебник и лекции, я все равно не понял, как же её писать и в чем суть использования подпрограмм. Условие задачи пока приводить не буду, но,...
Вопрос № 113.595
Помогите, пожалуйста, переделать программу, точнее, сделать ее с функциями, что бы не три раза вводить массив, и не три раза считать, и не три раза выводить, а сделать это один раз с использованием функций (Программа для определения местоположения (номер столбца и номера строки) минимального элемента)
Приложение:
Отправлен: 12.12.2007, 14:16
Вопрос задал: Superman (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Терсков Сергей
Здравствуйте, Superman!
Практически идентичная задача поставлена в вопросе №111117 (под номером 2). В моем ответе содержится код отвечающий вашим требованиям. В приложении привожу его повторно.
Приложение:
Ответ отправил: Терсков Сергей (статус: Практикант)
Ответ отправлен: 13.12.2007, 04:10
Отвечает: Титов Михаил Анатольевич
Здравствуйте, Superman!
В приложении код в котором организованы две функции - одна для ввода значений массива с одновременным определением минимального элемента, другая - для форматированного вывода информации о минимальном элементе.
Обратите внимание на то, как передается в функцию параметр - многомерный массив. Мы использовали наиболее гибкий подход - передать указатель на начало массива и отдельно его размерности. Но теперь внутри функции он превратился просто в указатель на значение float. Двухмерную индексацию к нему применять уже нельзя! Можно либо, как у нас, вычислять один индекс, либо пользоваться адресной арифметикой: *(A+i+j) то же самое, что A[i+j].
Разделение на две функции довольно условно. При желании, я думаю, вы легко сможете объединить код в одну функцию.
P.S.
В моем компиляторе нет gotoxy, пример проверялся без них. На экране будут "наползания", но я думаю, Вы с ними справитесь!
Приложение:
Ответ отправил: Титов Михаил Анатольевич (статус: 4-ый класс)
Ответ отправлен: 13.12.2007, 05:23 Оценка за ответ: 5 Комментарий оценки: Спасибо! все правильно
Вопрос № 113.606
Уважаемые експерты помогите решить задачу на плюсах
суть в том что функция print (в примере) должна использовать арифметику указателей (если возможно) б иначе придется 800 сторок проги переписывать.
суть примера в том что создаеться 2 (хотя мой масив 8 размерный)размерный масив в динамической памяти , и функции изменяют его с помощю указателей
Приложение:
Отправлен: 12.12.2007, 15:26
Вопрос задал: serjuar (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Лясин Александр Владимирович
Здравствуйте, serjuar!
Навряд ли Вам удасться при таком выделении памяти корректно использовать арифметику с указателями в Вашем виде. Всё дело в том - что изначально выделяется массив указателей, каждый из которых указывает на "свою" область памяти, и далеко не факт - что это какое-то цельное пространство памяти, скорее даже наоборот - каждый из трёх массивов будет распологаться в своём адресном пространстве. По сему арифметику в данном случае использовать некорректно. Вот в каждом отдельно взятом массиве такое возможно,
но в Вашем варианте это неменуемо приведёт в исключительной ситуации. Либо используйте статические массивы - в которых фокус с арифметикой "прокатит", либо используйте структуры или какие-то другие организации памяти. Вот что первое пришло в голову для ф-ии принт - так работать будет (см. приложение). P.S> Компилятору необходимо сообщить передачей параметра в ф-ю void print_ (int *value[]) - что он адресует не сплошное адресное пространство, а массив указате
лей на массиве
Отвечает: Терсков Сергей
Здравствуйте, Кощеев Никита Иванович!
Вы правы подобная задача встречалась не раз. Код для вашей задачи смотрите в приложении...
Приложение:
Ответ отправил: Терсков Сергей (статус: Практикант)
Ответ отправлен: 13.12.2007, 04:21 Оценка за ответ: 4
Вопрос № 113.667
Описать процедуру SumDigit(N,S), находящую сумму цифр S целого числа N (N — входной, S — выходной параметр). Используя эту процедуру, найти суммы цифр пяти данных чисел.
Отвечает: Ross
Здравствуйте, Петров Василий Фёдорович!
void SumDigit(int N,int *S)
{
*S = 0; if (N < 0) N = -N;
while (N)
{
*S += N%10; N /= 10;
}
}
--------- Доступно только то, что видимо (c) Б. Керниган
Ответ отправил: Ross (статус: Студент)
Ответ отправлен: 12.12.2007, 21:26
Вопрос № 113.676
Добрый вечер!У меня небольшие затруднения с бинарными деревьми... не могу организовать простейшее добавление...а что уж говорить обо всем остальном... я вообще не понимаю для чего они нужны(((
Отправлен: 12.12.2007, 20:53
Вопрос задала: lyubkin (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Терсков Сергей
Здравствуйте, lyubkin!
Ничего себе "небольшие затруднения". Для начала нужна теория:
Ответ отправил: Терсков Сергей (статус: Практикант)
Ответ отправлен: 13.12.2007, 03:56
Отвечает: Титов Михаил Анатольевич
Здравствуйте, lyubkin!
Вряд ли в рамках ответа можно рассказать все о бинарных деревьях - для чего нужны и как работают. Существует масса литературы по динамическим структурам. Для начала можно посмотреть у классиков:
http://www.proklondike.com/contentview.php?content=20
Брайан Керниган, Деннис Ритчи: Язык программирования C
раздел 6.5 "Структуры со ссылками на себя"
там как раз пример для чего нужны и как сделать добавление. В приложении компилирующийся код из этой главы. Ну а дальше практически любой учебник по С/С++.
Приложение:
Ответ отправил: Титов Михаил Анатольевич (статус: 4-ый класс)
Ответ отправлен: 13.12.2007, 04:06
Вопрос № 113.683
1) Описать нерекурсивную функцию NOD2(A,B) целого типа, находящую наибольший общий делитель (НОД) двух натуральных чисел A и B, используя алгоритм Евклида: НОД(A,B) = НОД(B mod A,A), если A <> 0; НОД(0,B) = B. С помощью этой функции найти наибольшие общие делители пар A и B, A и C, A и D, если даны числа A, B, C, D.
2) описать нерекурсивную функцию Fib(N) целого типа, вычисляющую N-е число Фибоначчи F(N) по формуле: F(1) = F(2) = 1, F(k) = F(k–2) + F(k–1), k = 3, 4, ... . С помощью этой функции вычислить 10 чисел Фибоначчи с указанными номерами.
Отвечает: Терсков Сергей
Здравствуйте, Петров Василий Фёдорович! Классические примеры решения этих задач рекурсивны. Рекурсию чаще всего иллюстрируют с помощью этих примеров (ну и еще вычисление факториала). Но об обычной реализации почему то забывают. Код функций смотрите в приложении...
Приложение:
Ответ отправил: Терсков Сергей (статус: Практикант)
Ответ отправлен: 13.12.2007, 04:46
Вопрос № 113.716
Здравствуйте, уважаемые эксперты!
Задали мне написать программу с использованием подпрограмм, но, прочитав учебник и лекции, я все равно не понял, как же её писать и в чем суть использования подпрограмм. Условие задачи пока приводить не буду, но, не могли бы Вы привести код подпрограммы ввода (можно еще и вывода)?
А именно, нужно организовать ввод координат точек попарно, т.е. (x1,y1), (x2,y2) и т.д., чтобы они хранились в памяти. Как мне кажеться, для этого нужно использовать матрицу, но как это сделать - не представляю.
Думаю, после этого мне станет понятнее что и как и основную часть программы я напишу сам ;)
Спасибо всем, кто откликнется!
Отправлен: 13.12.2007, 00:58
Вопрос задал: LexXx (статус: Практикант)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 4)
Отвечает: Verena
Здравствуйте, LexXx!
Подпрограмма, как я понимаю, в данном случае - функция. Тогда можно сделать, например, так: задать структуру "кооринаты", которая будет иметь два числовых поля, и создать из них массив ( в моём примере динамический). В функцию ввода передаём элемент по ссылке (знак &), в него запишется значение. Смотрите пример в приложении.
Удачи!
Приложение:
--------- Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: Студент)
Ответ отправлен: 13.12.2007, 01:39 Оценка за ответ: 5 Комментарий оценки: Спасибо!
Отвечает: Титов Михаил Анатольевич
Здравствуйте, LexXx!
Я думаю вам интересно будет посмотреть вопрос 113595. В приложении немного измененный пример из этого вопроса. В основе примера код, написаный задававшим вопрос читателем, так что, я думаю, вам не трудно будет в нем разобраться.
В отличии от примера из вопроса 113595 мы применили другой способ передачи в функцию параметра-двухмерного массива. Так, как мы точно знаем, что в массиве будут храниться координаты, то вторая размерность всегда равна 2. Пользуясь этим мы можем описать параметр функции как float [][2], то есть как массив двухмерных массивов значений float. И теперь мы можем ограничится только одним значением размерности, передаваемой в функцию в качестве второго параметра.
Приложение:
Ответ отправил: Титов Михаил Анатольевич (статус: 4-ый класс)
Ответ отправлен: 13.12.2007, 06:08 Оценка за ответ: 5 Комментарий оценки: Благодарю!