Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ] > Код на шару!
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.07.2013, 16:19
flasher167 flasher167 вне форума
Прохожий
 
Регистрация: 02.07.2013
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию добавить X ко всем негативным элементов списка

добавить X ко всем негативным элементов списка

X-это любое число которое введет пользователь.

Можно сделать и в формах.
Благодарю!
Ответить с цитированием
  #2  
Старый 02.07.2013, 19:35
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Что такое Негативный элемент списка?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 02.07.2013, 19:53
flasher167 flasher167 вне форума
Прохожий
 
Регистрация: 02.07.2013
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Негативный элемент списка, это список который в котором содержаться числа целого типа положительные и отрецательные, пользователь сам вводит этот как бы массив .... (пример 0, 2, 5, -4, -8) вот это список с негативными элементами, поставить перед ними Х .. (Х тоже вводит пользователь например 22) и в итоге список будет выгладить так
0, 2, 5, 22, -4, 22, -8
Ответить с цитированием
  #4  
Старый 02.07.2013, 19:58
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Это так сложно сделать самому?
Как говорил наш профессор: "Не переживайте, мы вас отчислим, за год хорошенько подготовитесь, в армию сходите, придете восстановитесь и все сдадите".
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию

Последний раз редактировалось M.A.D.M.A.N., 02.07.2013 в 20:03.
Ответить с цитированием
  #5  
Старый 02.07.2013, 20:22
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

А теперь сравните первоначальное условие:
Цитата:
добавить X ко всем негативным элементов списка
с вашим последующим примером:
Цитата:
(пример 0, 2, 5, -4, -8) вот это список с негативными элементами, поставить перед ними Х .. (Х тоже вводит пользователь например 22) и в итоге список будет выгладить так
0, 2, 5, 22, -4, 22, -8
По мне так, это мягко говоря разные задачи.
Ладно...
Можно задачу реализовать через динамический массив, но там придется тогда вставку элемента придется реализовывать. Несложно, но лишний код.
А можно загнать исходные элементы в StringList и там уже все будет просто ибо методы вставки уже реализованы.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #6  
Старый 02.07.2013, 20:28
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Двусвязный список лучше сделать.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #7  
Старый 02.07.2013, 20:53
flasher167 flasher167 вне форума
Прохожий
 
Регистрация: 02.07.2013
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

также можно просто к негативным элементам приплюсовать новый элемент ... 22, -30, 5 Х=5 ( 22, -25, 5)
я могу на си написать но на делфи нет навыков (
Ответить с цитированием
  #8  
Старый 02.07.2013, 20:53
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от Страдалецъ
...А можно загнать исходные элементы в StringList и там уже все будет просто ибо методы вставки уже реализованы.
Чисто визуально, одной строкой
Код:
Edit1.Text:= StringReplace(Edit1.Text,'-', Edit2.Text + ', -', [rfReplaceAll]);
Ответить с цитированием
  #9  
Старый 02.07.2013, 21:09
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Значит напиши на си, скидывай сюда, переведут тебе.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #10  
Старый 02.07.2013, 21:17
flasher167 flasher167 вне форума
Прохожий
 
Регистрация: 02.07.2013
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
Значит напиши на си, скидывай сюда, переведут тебе.
Код:
 
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <ctype.h>
#include <malloc.h>
 
#define QUE struct que /* tip dannih */
QUE
{
    int info;
    QUE *next;
};
int x;
void insert(QUE **q, int item);
void display(QUE * q);
QUE * create_list();
 
QUE *q=NULL; /* ob'yavlenie spiska */ 
/* ======= funktsiya vivoda spiska ====== */
void display(QUE * q) 
{
    QUE * current = q; 
    printf("\nLIST=");
    if (current)
    {
        while(current)
        {
            printf("%d-->", current->info);
            current = current ->next;
        }
        printf("NULL");
    }
    else
        printf("pustoy");
    printf("\n");
}
/* ====== funktsiya obrabotki spiska ====== */
void add_odd(QUE **q) 
{
    QUE * current = *q;
    QUE * new_node;
    while(current)
    {
        if(current->info < 0)
        {
            new_node=(QUE*) malloc (sizeof (QUE));
            new_node->info = x;
            if (current)
            {
                new_node->next=current->next;
                current->next=new_node;
            }
            else
            {
                *q=new_node;
                (*q)->next=NULL;
            }
        }
        current = current ->next;
    }
}
/* ====== funktsiya sozdaniya spiska ====== */
QUE * create_list() 
{
    QUE * list=NULL;
    int done=1, info, c;
    printf("Creation of list:\n");
    
    while(done)
    {
        printf("Add new element? (Y/N) ore (E)");
        c=getch();
        c=toupper(c);
        switch(c)
        {
        case 'Y':printf("\n Element=");
            scanf("%d", &info);
            insert(&q, info);
            break;
 
        case 'N': 
            done=0;
            break;
 
        case 'E':
            printf("\n X=");
            scanf("%d", &x);
            break;
        }
    }
    return (list);
}
/* === funktsiya dobavleniya elementa k spisku === */
void insert (QUE **q, int item) 
{
    QUE *current=*q;
    QUE *previous=0;
    QUE *new_node;
    QUE *x;
    while(current)
    {
        previous=current;
        current=current->next;
    }
    new_node=(QUE*) malloc (sizeof (QUE));
    new_node->info=item;
    if (previous)
    {
        new_node->next=previous->next;
        previous->next=new_node;
    }
    else
    {
        *q=new_node;
        (*q)->next=0;
    }
}
 
int main()
{
    create_list();
    display(q);
    add_odd(&q);
    if(q)
        display(q);
    getch();
    return 0;
}
Ответить с цитированием
  #11  
Старый 02.07.2013, 22:30
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Ну че-то многовато мне кажется.
Вот вариант с массивом:
Код:
program Project3;

{$APPTYPE CONSOLE}

uses
  SysUtils;
Var
  Num: Array of Integer;
  i,j: Integer;
begin
 Randomize;
 SetLength(Num, 10);
 for i := 0 to High(Num)
 do begin
    Num[i] := Random(100) - 50;
    WriteLn(Num[i]);
    end;
 i := 0;
 while i <= High(Num)
 do begin
    if Num[i] < 0
    then begin
         SetLength(Num, Length(Num) + 1);
         for j := High(Num) downto i
         do Num[j] := Num[j - 1];
         Num[i] := 22;
         Inc(i);
         end;
    Inc(i);
    end;
 WriteLn;
 for i := 0 to High(Num)
 do WriteLn(Num[i]);
 ReadLn;
end.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение:
flasher167 (02.07.2013)
  #12  
Старый 02.07.2013, 22:38
flasher167 flasher167 вне форума
Прохожий
 
Регистрация: 02.07.2013
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Страдалецъ
Ну че-то многовато мне кажется.
Вот вариант с массивом:
Код:
program Project3;

{$APPTYPE CONSOLE}

uses
  SysUtils;
Var
  Num: Array of Integer;
  i,j: Integer;
begin
 Randomize;
 SetLength(Num, 10);
 for i := 0 to High(Num)
 do begin
    Num[i] := Random(100) - 50;
    WriteLn(Num[i]);
    end;
 i := 0;
 while i <= High(Num)
 do begin
    if Num[i] < 0
    then begin
         SetLength(Num, Length(Num) + 1);
         for j := High(Num) downto i
         do Num[j] := Num[j - 1];
         Num[i] := 22;
         Inc(i);
         end;
    Inc(i);
    end;
 WriteLn;
 for i := 0 to High(Num)
 do WriteLn(Num[i]);
 ReadLn;
end.
нееее так нельзя... уже готовый массив и еще Х= уже задано... все должен пользователь ввести такие правила
Ответить с цитированием
  #13  
Старый 02.07.2013, 22:41
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Ну и замените рандомный массив на ваш готовый и подставьте значение ввода вместо 22.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение:
flasher167 (02.07.2013)
  #14  
Старый 04.07.2013, 22:10
flasher167 flasher167 вне форума
Прохожий
 
Регистрация: 02.07.2013
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

не получается переделать... нужно без использования массива..
Ответить с цитированием
  #15  
Старый 04.07.2013, 22:40
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Тогда как мэдмэн советовал, двусвязаный список надо делать.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:48.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter