|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
добавить X ко всем негативным элементов списка
добавить X ко всем негативным элементов списка
X-это любое число которое введет пользователь. Можно сделать и в формах. Благодарю! |
#2
|
||||
|
||||
Что такое Негативный элемент списка?
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
Негативный элемент списка, это список который в котором содержаться числа целого типа положительные и отрецательные, пользователь сам вводит этот как бы массив .... (пример 0, 2, 5, -4, -8) вот это список с негативными элементами, поставить перед ними Х .. (Х тоже вводит пользователь например 22) и в итоге список будет выгладить так
0, 2, 5, 22, -4, 22, -8 |
#4
|
||||
|
||||
Это так сложно сделать самому?
Как говорил наш профессор: "Не переживайте, мы вас отчислим, за год хорошенько подготовитесь, в армию сходите, придете восстановитесь и все сдадите". — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию Последний раз редактировалось M.A.D.M.A.N., 02.07.2013 в 20:03. |
#5
|
||||
|
||||
А теперь сравните первоначальное условие:
Цитата:
Цитата:
Ладно... Можно задачу реализовать через динамический массив, но там придется тогда вставку элемента придется реализовывать. Несложно, но лишний код. А можно загнать исходные элементы в StringList и там уже все будет просто ибо методы вставки уже реализованы. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#6
|
||||
|
||||
Двусвязный список лучше сделать.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#7
|
|||
|
|||
также можно просто к негативным элементам приплюсовать новый элемент ... 22, -30, 5 Х=5 ( 22, -25, 5)
я могу на си написать но на делфи нет навыков ( |
#8
|
||||
|
||||
Цитата:
Код:
Edit1.Text:= StringReplace(Edit1.Text,'-', Edit2.Text + ', -', [rfReplaceAll]); Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#9
|
||||
|
||||
Значит напиши на си, скидывай сюда, переведут тебе.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#10
|
|||
|
|||
Цитата:
Код:
#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
|
||||
|
||||
Ну че-то многовато мне кажется.
Вот вариант с массивом: Код:
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
|
|||
|
|||
Цитата:
|
#13
|
||||
|
||||
Ну и замените рандомный массив на ваш готовый и подставьте значение ввода вместо 22.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение: | ||
flasher167 (02.07.2013)
|
#14
|
|||
|
|||
не получается переделать... нужно без использования массива..
|
#15
|
||||
|
||||
Тогда как мэдмэн советовал, двусвязаный список надо делать.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |