очень нуждаюсь в помощи по С++..=(((плиииз - Форум
Суббота, 03.12.2016, 22:46
Задачи по информатике
Главная | Регистрация | Вход Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: ignorer, KOT_B_MEIIIKE, PASCAL26, atvrider 
Форум » Решение задач по информатике » Задачи по программированию + блок-схемы » очень нуждаюсь в помощи по С++..=(((плиииз (Массив, указатели, Ввод-вывод)
очень нуждаюсь в помощи по С++..=(((плиииз
МаркиЗаДата: Четверг, 20.05.2010, 12:59 | Сообщение # 1
Рядовой
Группа: Новичок
Сообщений: 3
[ 0 ]
Статус: Offline
1. тема:"Массив"
Задан массив целых положительных чисел X. Сформировать массив Y, куда записать номера элементов массива X, являющихся простыми числами. Определить количество совершенных чисел в массиве.
2. тема:"Указатели и динамические массивы"
Вычислить среднее арифметическое элементов, расположенных в вещественном массиве до первого и после последнего нулевых значений. Поменять местами пер-вый и максимальный элементы, последний и минимальный элементы. Создать функции для определения среднего значения, максимума и минимума.
3. тема:"Организация ввода-вывода "
Создать двоичный файл и записать в него n целых чисел. Из файла создать массив, элементы которого не являются простыми числами и расположены до минимального элемента.

cry

 
GrihaIДата: Пятница, 21.05.2010, 19:49 | Сообщение # 2
Генерал-полковник
Группа: Участник
Сообщений: 89
[ 1 ]
Статус: Offline
Срок?

Собираю деньги на инв. коляску. С предложениями писать в личку или мыло.
 
МаркиЗаДата: Суббота, 29.05.2010, 14:25 | Сообщение # 3
Рядовой
Группа: Новичок
Сообщений: 3
[ 0 ]
Статус: Offline
следующая неделя.....((
 
GrihaIДата: Понедельник, 31.05.2010, 15:13 | Сообщение # 4
Генерал-полковник
Группа: Участник
Сообщений: 89
[ 1 ]
Статус: Offline
Code

//Задан массив целых положительных чисел X.
//Сформировать массив Y, куда записать номера элементов массива X,
//являющихся простыми числами.
//Определить количество совершенных чисел в массиве.  
#include <stdlib.h>
#include <iostream>
#include <vector>
using namespace std;

bool is_prime(int n)
{
     if (n <= 1)
         return false;
   
     for (int j = 2; j * j <= n; j++)
          if (n % j == 0) return false;
   
     return true;
}
//////////////////////////////////////
bool perfect(int n)
{
  vector<int> div_mas;
  for(int i = 1;i < n; ++i)
   if(n%i == 0) div_mas.push_back(i);
  int sum = 0;
  for(int i = 0;i < div_mas.size(); ++i)
   sum += div_mas[i];
  if(sum == n) return true;
  return false;
   
}
/////////////////////////////////
void main()
{
  int x[10],y[10]={0};
  int i,j;
  cout<<"Заполнение массива:";
  for (i=0;i<10;i++)
  {
   cout<<"\n"<<i+1<<"элемент - ";
   cin>>x[i];
  }
  cout<<"Содержимое массива X:\n";
  for (i=0;i<10;i++)
   cout<<x[i]<<"\t";
  j=0;
  for (i=0;i<10;i++)
  {
   if(is_prime(x[i]))
   {
    y[j]=i+1;
    j++;
   }
  }
  if(j)
   for (i=0;i<10;i++)
   {
    if(y[i])
     cout<<y[i]<<"\t";
   }
  else cout<<"Нет простых чисел !\n";
  j=0;
  for  (i=0;i<10;i++)
   if(perfect(x[i]))j++;
  cout<<"\nСовершенных чисел:"<<j<<"\n";
  cin>>i;
}

Code

//Создать двоичный файл и записать в него n целых чисел.
//Из файла создать массив, элементы которого
//не являются простыми числами и расположены до минимального элемента.
#include<fstream>
#include<iostream>
#include <vector>
using namespace std;

bool is_prime(int n)
{
      if (n <= 1)
          return false;
     
      for (int j = 2; j * j <= n; j++)
           if (n % j == 0) return false;
     
      return true;
}
void main()
{
   int x,pos=0,temp,i=0;
   vector<int> div_mas;
   ofstream f;
   f.open("bin.bin",ios::out|ios::binary);
   cout<<"Введите числа. Для выхода (0)\n";
   do{
    cin>>x;
    if(x)
     f.write((char*)&x,sizeof x);
   }while(x);
   f.close();
   ifstream fp("bin.bin", ios::binary );
   while( fp && !fp.eof())
   {
       fp.read( (char*)&x,sizeof(x) );
       if( !fp.eof() )
     div_mas.push_back(x);
   }
   fp.close();
   temp=div_mas[0];
   cout<< "\nСодержимое файла:\n";
   for(i=0;i<div_mas.size();i++)
   {
    cout<< div_mas[i]<<"\t";
    if(div_mas[i]<temp)
    {
     pos=i;
     temp=div_mas[i];
    }
   }
   temp=0;
   for (i=0;i<pos;i++)
   {
    if(!is_prime(div_mas[i]))
    {
     if(!temp)
     {
      cout<< "\n\nне являются простыми числами:\n";
      temp=1;
     }
     cout<<div_mas[i]<<" ";
    }
   }
   if(!temp)cout<<"\n\nВсе числа простые!\n";
   cin>>x ;
}

Добавлено (31.05.2010, 15:10)
---------------------------------------------

Code

#include <stdlib.h>
#include <iostream>
#include <time.h>
using namespace std;
//создает массив  
int**create(int h,int w)
{
  int**p,i;
  p=new int*[h];
  for(i=0;i<h;i++)
   p[i]=new int[w];
  return p;
}
//вывод массива на экран
void print(int **p,int h,int w)
{
  int i,j;
  for(i=0;i<h;i++)
  {
   for(j=0;j<w;j++)
   {
    cout<<p[i][j]<<"\t";
   }
   cout<<endl;
  }
}
//вычисляет среднее арифметическое
float mean(int **p,int h,int w)
{
  int i,j;
  float m=0;
  for(i=0;i<h;i++)
   for(j=0;j<w;j++)
    m+=p[i][j];
  return (m/(h*w));
}
//Вычисляет среднее арифметическое элементов, расположенных в массиве  
//до первого и после последнего нулевых значений.
float mean2(int **p,int h,int w)
{
  int i,j;
  int st=1,end=1,col=0;
  float m=0;  
  for(i=0;st&&(i<h);i++)
   for(j=0;st&&(j<w);j++)
    if(p[i][j]&&st)
    {
     m+=p[i][j];
     col++;
    }
    else st=0;
  st=1;
  for(i=1;st&&(i<=h);i++)
   for(j=1;st&&(j<=w);j++)
    if(p[h-i][w-j]&&st)
    {
     m+=p[h-i][w-j];
     col++;
    }
    else st=0;
  return (m/col);
}
//заполнение массива  
void add(int **p,int h,int w)
{
  int i,j;
  for(i=0;i<h;i++)
   for(j=0;j<w;j++)
   {
    p[i][j]=rand()%21-10;
   }
}
//поиск максимального и минимального значений
void min_max(int **p, int h, int w, int *&min, int *&max)
{
      min = max = &p[0][0];
      for(int i=0; i<h; i++)
  for(int j=0; j<w; j++)
  {
   if(p[i][j] < *min) min = &p[i][j];// Сохраняем найденные адреса
   if(p[i][j] > *max) max = &p[i][j];// в переданных указателях,
  }
}
//Меняет местами пер-вый и максимальный элементы
// последний и минимальный элементы.
void swap2(int **p,int h, int w, int &min,int &max)
{
  int temp;
  temp=max;
  max=p[0][0];
  p[0][0]=temp;
  temp=min;
  min=p[h-1][w-1];
  p[h-1][w-1]=temp;
}

Добавлено (31.05.2010, 15:13)
---------------------------------------------

Code

void main()
{
  int h,w;
  int **array_a;
  int *min,*max;
  srand (time (NULL));
  cout<<"height:";
  cin>>h;
  cout<<"width:";
  cin>>w;
  array_a=create(h,w);
  add(array_a,h,w);
  cout<< "Исходны массив\n";
  print(array_a,h,w);
  printf("Средне значение: %2.2f\n",mean(array_a,h,w));
  printf("Среднее арифметическое элементов\nрасположенных в массиве до первого\nи после последнего нулевых значений: %2.2f\n",mean2(array_a,h,w));
  min_max(array_a,h,w,min,max);
  printf("Min: %d\nMax: %d\n",*min,*max);
  swap2(array_a,h,w,*min,*max);
  print(array_a,h,w);
  cin>>w;
}


Собираю деньги на инв. коляску. С предложениями писать в личку или мыло.

Сообщение отредактировал GrihaI - Понедельник, 31.05.2010, 14:58
 
lafresaДата: Пятница, 26.11.2010, 14:54 | Сообщение # 5
Рядовой
Группа: Новичок
Сообщений: 1
[ 0 ]
Статус: Offline
определить сколько требуется элементов x для вычисления выражения y=1/x+1/x+2/....,при y=3срочно очень надо((( при помощи с++

Сообщение отредактировал lafresa - Пятница, 26.11.2010, 14:54
 
Форум » Решение задач по информатике » Задачи по программированию + блок-схемы » очень нуждаюсь в помощи по С++..=(((плиииз (Массив, указатели, Ввод-вывод)
Страница 1 из 11
Поиск:

Copyright MyCorp © 2016