Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2009, 17:29   #1
DOJ
Пользователь
 
Регистрация: 11.06.2009
Сообщений: 19
По умолчанию Поиск в односвязном списке

Здраствуйте. Помогите пожалуйста решить проблему. Только начала разбираться со списками, написала функцию поиска в списке. Заранее благодарю за помощь.


Код:
//поиск элемента в списке
 void poisk_el(Spisok* pNDS)
 {
 char el;

  cout<<"введите искомый элемент"<<"\n";
  cin>>el;
  pNDS=pHead;
  while(pNDS->pNext)//пока есть значения
  	 {
  	 if (strcmp(pNDS->szName,el)==0)
    {
      cout<<"Искомый элемент есть в списке "<<"\n";
     }


    else
    pNDS=pNDS->pNext;
            }
     }
DOJ вне форума Ответить с цитированием
Старый 01.10.2009, 21:47   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

я в функцию передавал указатель на голову списка,а в самой функции заводил временный указатель

Код:
void poisk_el(Spisok* pHead)
 {
   Spisok *tmp;
   char el;  
  
   cout<<"введите искомый элемент"<<"\n";
   cin>>el;   
  
   tmp=pHead;

   while(tmp->pNext)//пока есть значения
   {
      if (strcmp(tmp->szName,el)==0)   //  если el - строка, то нужно объявить как char el[20], если символ, то сравнивать можно без strcmp 
      {
          cout<<"Искомый элемент есть в списке "<<"\n";
          break; // чтобы выйти из цикла при нахождении первого элемента
      }
     else
     tmp=tmp->pNext;
            }
 }
counter вне форума Ответить с цитированием
Старый 02.10.2009, 16:29   #3
DOJ
Пользователь
 
Регистрация: 11.06.2009
Сообщений: 19
По умолчанию

Спасибо большое за ответ.
DOJ вне форума Ответить с цитированием
Старый 03.10.2009, 22:19   #4
foкс
 
Регистрация: 03.10.2009
Сообщений: 3
По умолчанию

DOJ, я тут в одной из тем видела,что ты рассматривала программу: Разработать программу для итерационного поиска размеров равномерных выплат по кредиту. Выплаты и начисления процентов на оставшуюся сумму производятся ежемесячно. Исходные данные: размер кредита, срок выплат (от 1 до 5 лет), процентная ставка. В диалоговом окне изобразить график изменения остатка от суммы кредита. Не могла бы ты дать весь код этой программы полностью....Заранее БОЛЬШОЕ СПАСИБО! надеюсь не зря...
foкс вне форума Ответить с цитированием
Старый 03.10.2009, 23:55   #5
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

Цитата:
надеюсь не зря...
думаю, что зря... (без наработок-то...)
counter вне форума Ответить с цитированием
Старый 04.10.2009, 10:49   #6
DOJ
Пользователь
 
Регистрация: 11.06.2009
Сообщений: 19
По умолчанию

Да даную тему я рассматривала. Только она не полностью сделана. Нужно до работать, а именно разобратся с графиком. Если разберетесь не могли бы потом кинуть, что у вас получилось.
Код:
#include <vcl.h>
#pragma hdrstop
#include <math.h>
#include <iostream.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{

float sum; //сумма кредита
float pst; //процентная ставка
float stm; //месячная процентная ставка
float  ppr;//платеж по процентам
float pkr; //платеж по кредиту
float  op; //общий платеж
float  k; // коэффициент
float  sq; // степень
int i; //счетчик
int srv; //срок выплат
int srv1;
  {
// ввод данных
sum=StrToFloat(Edit1->Text);   //сумма кредита
pst=StrToFloat(Edit2->Text);   //процентная ставка
srv=StrToFloat(Edit3->Text);   //срок выплат

//расчет значений для расчета суммы кредита
stm=(pst/100)/12; //месячная процентная ставка
 Label6->Caption = "Ставка : " +
         FloatToStrF(stm,ffGeneral,7,8);
// расчет срока выплаты
srv1=srv*12;
srv=srv1;  //для того чтобы нее было ошибки при делении 
	}

 for (i=1; i!=srv+1;i++)
 {
 sq=pow((1+stm),srv1);
 ppr=stm*sum; //платеж по процентам
 k=((stm*sq)/(sq-1)); // коэффициент ануитентный
 op=k*sum; //общий платеж
 pkr=op-ppr; //платеж кредита
 srv1=srv1-1; //срок выплат сокращается на 1
 sum=sum-pkr;//для перерасчета суммы кредита
 Image1->Canvas->LineTo(sum,pkr);



				  }

	   Label7->Caption = "Общий платеж : " +
		FloatToStrF(op,ffGeneral,7,8);

  Label8->Caption = "Платеж по процентам: "+
         FloatToStrF(ppr,ffGeneral,7,8);


}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
Form1->Close();
}
DOJ вне форума Ответить с цитированием
Старый 04.10.2009, 13:34   #7
foкс
 
Регистрация: 03.10.2009
Сообщений: 3
По умолчанию

Спасибо! Думаю, что разберусь. Обязательно кину)))
foкс вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск в всплывающем списке... andrewvd Microsoft Office Excel 10 28.08.2009 03:29
поиск в линейном списке Yura_n Общие вопросы C/C++ 9 23.07.2009 01:42
Обмен местами 2х элементов в односвязном списке. amdbodia Общие вопросы C/C++ 4 31.05.2009 23:26
поиск IP в списке TaTT DoGG PHP 6 13.08.2008 18:53
Пусто в выпадающем списке? ZORRO2005 Microsoft Office Excel 6 10.01.2008 11:59