![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Регистрация: 27.10.2008
Сообщений: 3
|
![]()
Я нуб в програмировании , но хочу стать умнее. Но сейчас нужна помощь в 2ух задачах лабораторной по с++. Лаба будет проводица в среде "с++ билдер 6". вот сами задачи:
1.Найти количество различных элементов массива. (1мерынй массив)(Допустим ввели элементы 1 2 3 4 5 - выводит в ответе 5 элементов.а если 1 1 2 2 3 то выаводит 3 элемента) 2.Пусть есть двумерный массив, заполненный символами. Рассматривать его как многострочный текст, слова в котором разделены одним или несколькими пробелами. Поменять местами самое длинное слово и самое короткое слово в тексте. При наличии нескольких слов с максимальной (минимальной) длиной заменять то, символы которого больше по алфавиту. По возможности напишите алгоритмы программ (хочу сам написать код программы).Но если не осилю, то уже обращуся к коду программы. Поэтому прошу написать алгоритм и код программ. Заранее премного благодарен |
![]() |
![]() |
![]() |
#2 |
Меркантильный кю
Участник клуба
Регистрация: 02.02.2008
Сообщений: 1,001
|
![]()
1 задачка
Вариант первый 1) упорядочиваем массив (всё равно как, допустим, по возрастанию) 2) бежим от начала к концу. каждый раз сравниваем текущий элемент с предыдущим. если они не равны, увеличиваем счётчик Вариант второй. Подходит, если элементы массива - целые числа и они ограничены какими-нибудь не слишком большими величинами, например, (-1000..1000). Так называемый, массив с прямой адресацией. 1) бежим по массиву. пусть очередной элемент равен k. Тогда во вспомогательный массив записываем true в ячейку с номером k. 2) бежим по вспомогательному массиву. Каждый раз, как натыкаемся на true, увеличиваем счётчик. P.S. вспомогательный массив сначала надо забить false'ами
Росли вроде умными, выросли дурнями... (c)А.Васильев
|
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 19.10.2008
Сообщений: 32
|
![]() Цитата:
К первой… int find(int* a, int count, int value, int* exclude =NULL) { //бренное тело ф-и. оживи её…) подумай как… //ищит в а value исключает из рассмотрения exclude //как найдет – позицию дает, потеряет -1 возвращает. } int m[5] //заполнение массива данными … //собственно просчет кол-ва for (i = 0; i < 5; i++) { if (-1==find(...???...) { d++; } } … Ответ = d |
|
![]() |
![]() |
![]() |
#4 |
Регистрация: 22.10.2007
Сообщений: 5
|
![]()
По первой:
Код:
|
![]() |
![]() |
![]() |
#5 |
Регистрация: 22.10.2007
Сообщений: 5
|
![]()
По второй задаче...
У тебя обязательно должны быть объявлены следующие переменные: int indexmin; //номер в строке первого символа самого короткого слова int lenmin; //длина самого короткого слова в строке int indexmax; //номер в строке первого символа самого длинного слова int lenmax; //длина самого длинного слова в строке Переменным indexmin и indexmax надо присвоить начальные значения: indexmin=-1; indexmax=-1; Затем нужно организовать цикл, в котором программа будет искать слова в строке. Когда будет обнаружено новое слово в строке, программа должна проверить, является ли это слово первым (переменная indexmax должна иметь значение -1). Если слово является первым, то переменным indexmax, indexmin, lenmax, lenmin надо присвоить значения, связанные с этим словом: номер его первого символа и количество символов в нем. Если новое слово не является первым найденным в строке словом (переменная indexmax уже не равна -1), то нужно провести сравнения длины найденного слова с lenmax и lenmin. Если окажется, что найденное слово - самое короткое или самое длинное, то изменить значения либо переменных indexmax, lenmax (если слово самое длинное), либо переменных indexmin, lenmin (если слово самое короткое). Если же окажется, что длина нового слова равна либо lenmax, либо lenmin, то нужно провести сравнение найденного слова либо с самым длинным словом, либо с самым коротким, либо с обоими этими словами, если lenmax=lenmin и indexmax не равен indexmin. Ну и в зависимости от результатов сравнения поменять значения indexmax-lenmax (indexmin-lenmin) или оставить старые значения этих переменных. В общих деталях так надо делать твою задачу. |
![]() |
![]() |
![]() |
#6 |
Регистрация: 27.10.2008
Сообщений: 3
|
![]()
ууу всем спс огромное. можна плх 2ую задачу код программы ато неуспеваю сделать 8(( на завтра нада защищать лабу+ 2 реферата готовить Т_Т
|
![]() |
![]() |
![]() |
#7 |
Регистрация: 27.10.2008
Сообщений: 3
|
![]()
ап - помогите плз 8( хоть на перездачи сдам лабу
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Лаба по Ассемблеру | Rio309 | Помощь студентам | 13 | 30.10.2008 00:35 |
Лаба по массивам | DimaG | Помощь студентам | 19 | 30.10.2007 08:56 |