парни!!!плиз, помогите решить задачи по с++!!! - Форум
Пятница, 09.12.2016, 06:51
Задачи по информатике
Главная | Регистрация | Вход Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: ignorer, KOT_B_MEIIIKE, PASCAL26, atvrider 
Форум » Решение задач по информатике » Задачи по программированию + блок-схемы » парни!!!плиз, помогите решить задачи по с++!!! (с++)
парни!!!плиз, помогите решить задачи по с++!!!
yulechka_malishkaДата: Вторник, 08.06.2010, 17:51 | Сообщение # 1
Рядовой
Группа: Новичок
Сообщений: 3
[ 0 ]
Статус: Offline
1)создать однозвязный список с помошью массива структур.Исключить из списка все элементы с нулевым целым числом.Найти сумму тех целочисленых элементов списка, которые являются четными.Результирующий список сумму вывести на экран.
2.Создайте файл целого типа.Проанализировав в программе содержимое файла создайте одну очередь однозначных чисел, а вторую очередь двузначных чисел.Перемножьте соответствующие элементы двух очередей и организуйте третью очередь. Результат выведите в текстовый файл.Решение в программе оформляйте через подпрограммы.
3. Создайте стек для символов. Максимальный размер стека вводится с экрана. Создать функции для ввода и вывода элементов стека. Добавить символы с экрана в стек. После добавления пятого символа перед добавлением удалять элемент из стека. Задачу решить с использованием механизма указателей.
З.ы. Плиииииз, помогите мне, а то хана мне :(((а то я в этом ничего не поняла sad
 
GrihaIДата: Среда, 09.06.2010, 00:39 | Сообщение # 2
Генерал-полковник
Группа: Участник
Сообщений: 89
[ 1 ]
Статус: Offline
Задание 1
Code

#include <iostream>
#include <conio.h>
using namespace std;
typedef int cinfo;//создание новой переменной cinfo типа int
typedef struct node{//создание структуры node
      //и объявляем ее как новый тип переменной с именем
      //pnode
  cinfo info;//переменая info тип "int"
  node *next,*prev;//указатели на следующую и предыдущую ячейку
}*pnode;
class list{
  pnode first;//ukazatel na nahalo spiska
  int num;//dlina spiska
  pnode last;//ukazatel na konec spiska

public:
  list():first(NULL),last(NULL),num(0){}
  ~list();
  bool empti(){return!num;}//проверка на пустой список
  int length(){return num;}//dlina
  void addlast(cinfo x);
  void del(int i);
  void show();
  void delzerro();
  void delhead();
private:
  pnode getnum(int n);
};

pnode list::getnum(int n)
{
  if (n>=num||n<0){
   cout<<"vihod za predel\n";
   return NULL;
  }
  pnode prom=first;
  for (int i=0;i<n;i++)prom=prom->next;
  return prom;
}
list::~list()//ohihaet pamyat
{
  while(!empti())delhead();
}
void list::delzerro()
{
  int i=0;
  pnode prom=first;
  for(i=0;i<length();i++)
  {
   if((prom->info)==0)
    del(i);
   else prom=prom->next;
  }
}
//udalenie pervogo
void list::delhead()
{
  if (empti()){
   cout<<"Spisok pust\n";
   return;
  }
  pnode prom=first;
  first=prom->next;
  if(last==prom)last=NULL;
  delete prom;
  num--;
}
void list::show()
{
  pnode prom=first;
  while(prom){
   cout<<prom->info<<"\t";
   prom=prom->next;}
  cout<< endl;
}

//dobavlyaet v konec
void list::addlast(cinfo x)
{
  pnode prom=new node;
  prom->info=x;
  prom->next=NULL;
  if(!first)first=prom;
  else last->next=prom;
  last=prom;
  num++;
}
//udalaet vnutri
void list::del(int i)
{
  if (empti()){
   cout<<"Spisok pust\n";
   return;}
  if (i>=length()||i<0){
   cout<<"vihod za predel\n";
   return;}
  pnode rem=getnum(i-1),
  prom=rem->next;
  rem->next=prom->next;
  num--;
  delete prom;
}

void main()
{
  int x;//номер ячейки списка
  list L;//имя ячейки
  pnode first = NULL;//
  while(1){
   cin>>x;//значение добавляемое в список
   if (x<0)break;
   L.addlast(x);//добавляет в конец
  };
  cout<<"список\n";
  L.show();
  L.delzerro();  
  L.show();
}


Собираю деньги на инв. коляску. С предложениями писать в личку или мыло.
 
yulechka_malishkaДата: Среда, 09.06.2010, 16:29 | Сообщение # 3
Рядовой
Группа: Новичок
Сообщений: 3
[ 0 ]
Статус: Offline
оооооой, спасибо ОГРОМНОЕ!!!!!!!!!!!
 
GrihaIДата: Четверг, 10.06.2010, 13:12 | Сообщение # 4
Генерал-полковник
Группа: Участник
Сообщений: 89
[ 1 ]
Статус: Offline
Вторая задача
Code

#include <stdlib.h>
#include <iostream>
#include <time.h>
#include <fstream>
using namespace std;

class queue{
  int *p;
  int n,head,tail;//количество,начало,конец
  int next(int i){if(i==n)return 0;else return i+1;}
public:
  queue(int N):n(N),head(0),tail(0){p=new int[n];}//конструктор
  ~queue(){delete[]p;}//деструктор
  void add(int x);//объявление функций
  int get(int x){return p[x];}
  void show();
  int empty(){return tail==head;}

};

void queue::add(int x)//добавление в очередь
{
  if (next(tail)==head)cout<<"Очередь заполнена\a\n";
  else {p[tail]=x;tail=next(tail);}//записываем в очередь и увеличиваем конец на еденицу
}

void queue::show()
{
  int i=head;
  if (head!=tail)//если очередь не пустая
   do{
    cout<<p[i]<<"\t";
    i=next(i);
   }while(i!=tail);//выполнять пока i не будет конец
   cout<<endl;
}

void main()
{
  int col=0;
  int i;
  int temp=0;
  char line[200],*word;
  srand(time(NULL));
  fstream rec;
  ifstream play;
  rec.open("DDD.txt",ios::out);
  cout<<"Колличество цифр: ";
  cin>>col;
  queue one(col+1),two(col+1),reply(col+1);
  for (i=0;i<col;i++)
  {
   rec<<rand()%9+1<<"\t"<<rand()%90+10<<"\t";
   if(i==5)rec<<"\n";
  }
  rec.close();
  play.open("DDD.txt");
  while(!play.eof())
  {
   play.getline(line,200);
   word=strtok (line,"\t\n");
   while (word!=NULL)
   {
    temp=atoi(word);
    if(temp<10)one.add(temp);
    else two.add(temp);
    word=strtok (NULL,"\t\n");
   }
  }
  play.close();
  one.show();
  for(i=0;i<col;i++)cout<<"*\t";
  cout<< "\n";
  two.show();
  for(i=0;i<col;i++)cout<<"=\t";
  cout<< "\n";
  rec.open("DDD.txt",ios::out|ios::app);
  rec<<endl;
  for(i=0;i<col;i++)
  {
   reply.add((one.get(i)*two.get(i)));
   rec<<reply.get(i)<<"\t";
  }
  reply.show();
  rec.close();
}

Добавлено (10.06.2010, 13:12)
---------------------------------------------
Третья задача

Code

#include <iostream>
#include <stdlib.h>
using namespace std;
class stack{
  char *p;
  int n;
public:
  int top;
  stack(int N):n(N),top (0){p=new char [n];}//конструктор
  ~stack(){delete []p;}//деструктор
  void push(char x){p[top++]=x;}//добавление в стек
  char pop()
  {
   if(!top)
   {
    cout<<"pusto\a\n";
    return -1;
   }
   else return p[--top];
  }
  int empty(){return !top;}
  void show()
  {
   for (int i=0;i<top;i++)
    cout <<p[i]<<" ";
   cout<<endl;
  }
};
void main()
{
  int size;
  char x;
  cout<<"Введите размер стека: ";
  cin>>size;
  stack s(size);
  for (int i=0;i<size;i++)
  {
   if(i>4&&!s.empty())
    cout <<"Удалили: "<<s.pop();
   cout<<"\n"<<i+1<<" cимвол для стека: ";
   cin>>x;
   s.push(x);
  }
  cout<<"Содержимое стека: ";
  s.show();
}


Собираю деньги на инв. коляску. С предложениями писать в личку или мыло.
 
yulechka_malishkaДата: Четверг, 10.06.2010, 13:59 | Сообщение # 5
Рядовой
Группа: Новичок
Сообщений: 3
[ 0 ]
Статус: Offline
спасибо тебе огромнейшое!!!должна как земля колхозу!
 
Форум » Решение задач по информатике » Задачи по программированию + блок-схемы » парни!!!плиз, помогите решить задачи по с++!!! (с++)
Страница 1 из 11
Поиск:

Copyright MyCorp © 2016