Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 04.12.2015, 12:39   #1 (permalink)
Deztymer
Новичок
 
Регистрация: 04.12.2015
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Question Помогите с задачами на С++

Добрый день, дорогие друзья-программисты! нужна ваша помощь) Нужно написать пару программ на С++
1. «Создание и обработка списков»
Даны: натуральное число n и целые числа а(1),…., a(n). Выяснить, имеются
ли среди чисел а(1),… a(n) совпадающие.
2. "Работа со строками"
Выбрать любой текст. Выделить в нем все слова заданной длины.
За помощь буду по гроб жизни обязан!
Deztymer вне форума   Ответить с цитированием

Старый 04.12.2015, 12:39
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Я помогу вам ускорить решение проблемы, прочтите похожие темы

Помогите, пожалуйста, с задачами на Паскале
Помогите пожалуйста с задачами на паскале
Помогите с тремя простыми задачами PASCAL
Пожалуйста, помогите с задачами в Паскале
Помогите с задачами, пожалуйста. Нужно написать на языке С
Помогите с задачами на фри Паскале

Старый 04.12.2015, 13:46   #2 (permalink)
MagentaTiger
Специалист
 
Аватар для MagentaTiger
 
Регистрация: 27.04.2015
Адрес: Москва
Сообщений: 1,423
Записей в дневнике: 4
Сказал(а) спасибо: 52
Поблагодарили 53 раз(а) в 16 сообщениях
Репутация: 18120
По умолчанию

По первой задачке, я так понимаю про шаблоны вы ничего не слышали, поэтому пойдем классическим путем, сразу скажу - не компилировал, не проверял, поэтому могут быть как семантические так и синтаксические ошибки, добивайте код сами
Код:
#include <iostream>
using namespace std;
 
/* элемент списка */
struct ListNode
{
    int num;
    ListNode *next;
};
 
class List
{
    
    private:    
         ListNode *first;            //голова списка
    public:
    
        List()
        {
            first = NULL;           //список изначально пустой
        }
   
        ListNode * getFirst() {
         return first;
       }
 
        void addNode(int num)                    //функция добавления в конец списка
        {
            ListNode *ptr = new ListNode;       //выделяем память под элемент списка
            ListNode  *cur;   
            ptr->num = num;                   //кладем данные о человеке
            ptr->next = NULL;                 //следующих данных нет(NULL - признак конца списка)
 
            if(first == NULL)               //если список пуст
            {
                first = ptr;                //введенные данные будут первой записью
            }
            else { 
                                             // пробежимся по списку и присвоим в последнем существующем элементе
                                             // указателю на следующий элемент указатель на вновь созданый 
            cur = first; 
            while(cur->next != NULL) {
                cur = cur->next; 
            }
            cur->next = ptr; 
            }
        }
 
 
        void showNodes()                 //вывод списка
        {
            ListNode *cur = first;       //голова списка
 
            if(cur == NULL)    {         //если список пуст выводим сообщение
                wcout << "Список пуст!";
            }
            else
            {
                wcout << "Список: ";
                while(cur != NULL)          //идем по списку
                {
                    cout << cur->num << "   "; //выводим элемент
                    cur = cur->next;      //переходим к следующему
                }
            }
 
            cout << endl;
        }
        
        //поиск элемента в списке, возвращает указатель если нашли совпадение или NULL если не нашли
        ListNode *  find(ListNode *node,int num)        
        {
            ListNode *cur = node;       //начинаем поиск с элемента указаного ноде
            while(cur != NULL)          //идем по списку
                {
                    if(cur->num==num) {
                       return cur; 
                    } 
                    cur = cur->next;      //переходим к следующему
                }
 
            return NULL;
	}


};
 
int main()
{
    int n=0,num=0 ;   
    List op;    //объявляем объект класса
    ListNode *cur=NULL;
    ListNode *found=NULL;
    int countFound=0;
    cout << "Введите количество элементов списка" << endl;
    cin >> n;   
    for(int i=0;i<n;i++) {
    cout << "Введите элементов списка номер" << i+1 << endl;      
    cin >> num;
    op.addNode(num); 
    }

    op.showNodes();              //вывода списка на консоль

    cur = op.getFirst();       //голова списка
    while(cur != NULL)            //идем по списку
    {
       found = op.find(cur->next,cur->num);
       if( found != NULL)  {
 
              countFound++; 
        }
       cur = cur->next;      //переходим к следующему
    }
    if (countFound > 0 ) {
    cout<< "Найдено " << countFound << " совпадений в элементах списка";
    }
    else  {
    cout<< "Совпадений в элементах списка не найдено";
    }
    cout << endl;
    return 0;
}
по второй задаче не понятно откуда и как брать текст и куда выводить результат ? Из фала ? в Файл ? Вручную будут текст вбивать ? Другие варианты ?

Ну а вообще надо бы самому приложить хоть какие то усилия, что бы вам хотелось помочь ... привели бы свои варианты решения и сказали , что конкретно у вас не получается, вам бы помогли гораздо охотнее ...


Боюсь, что просто сдав вышеприведенный фрагмент преподавателю, вы не сможете ответить ни на один дополнительный вопрос от него по сути решения задачи ...
MagentaTiger вне форума   Ответить с цитированием
Старый 04.12.2015, 14:16   #3 (permalink)
Deztymer
Новичок
 
Регистрация: 04.12.2015
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Спасибо за программу, вижу пару ошибок, подправлю) Я не на столько глуп, как Вы думаете, просто времени катастрофически не хватает) ВО втором текст берется из файла и выводится в файл
Deztymer вне форума   Ответить с цитированием
Старый 04.12.2015, 15:05   #4 (permalink)
MagentaTiger
Специалист
 
Аватар для MagentaTiger
 
Регистрация: 27.04.2015
Адрес: Москва
Сообщений: 1,423
Записей в дневнике: 4
Сказал(а) спасибо: 52
Поблагодарили 53 раз(а) в 16 сообщениях
Репутация: 18120
По умолчанию

Цитата:
Сообщение от Deztymer Посмотреть сообщение
Я не на столько глуп, как Вы думаете
Я и не думаю что Вы глупы Но думаю, что ленивы - это нормально для будущего "программиста" ... просто и меня сей порок то же не минул, поэтому надеюсь, что вторую задачу Вы решите самостоятельно ...
MagentaTiger вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Метки
c++, задача., помощь новичку

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 04:03.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.