Jump to content

C++ uzdevumam need help


Marcis91
 Share

Recommended Posts

Sveiki, vai lūdzu varētu izpalīdzēt? Dota skaitļu virkne a(1), a(2), , a(n), kur visi elementi ir pa

pāriem atšķirīgi. Samainīt vietām šajā virknē lielāko un pēdējo elementu.

 

viss ir, tikai kā var uztaisīt, ka lietotājs nedrīkst ievadīt vienādus elementus, vai, ja ievada, tad izmet erroru, un pieprasa ievadit atkartoti???

 

Koda gabals, kur var ievadit elementus un pectam parbauda bet tas neder, jo man nevajag vienkārši zinojumu, ka neder, bet vajag, ka to elementu pa jaunu jaievada:

http://paste.php.lv/db0797e1b5843f175df08e6c2cd6495f?lang=cpp

Link to comment
Share on other sites

Un kur problēma? Liec to pārbaudi iekšā pirmajā for ciklā, būs tev ziņojums un cikls turpinās.

Figūriekava 5. rindā tiek pārvietota uz 18. rindu.

Nu tur varbūt jāpielabo - ielasi ievadīto mainīgajā un tikai pēc pārbaudes, ja nav vienāds, tad liec masīvā.

Labots - HIGH-Zen
  • Patīk 1
Link to comment
Share on other sites

Es īsti nesaprotu, ko nozīmē "pa pāriem atšķirīgi"? Ar ko tas atšķiras no "visi atšķirīgi"?

Link to comment
Share on other sites

Es īsti nesaprotu, ko nozīmē "pa pāriem atšķirīgi"? Ar ko tas atšķiras no "visi atšķirīgi"?

Ne ar ko, ķip matemātiķu valodā :D:D

Link to comment
Share on other sites

#include <stdio.h>
#include <map>
#include <vector>
#include <iostream>

#define n 5

using namespace std;

int main()
{
int max_value=0,max_value_index;
int c;
map<int,int>skaitlu_kopa;
int skaitli_pec_kartas[n+1];//nullto elementu neizmantosim, lai skaistaak
for (int i = 1; i<=n; i++)
{
	while(true)
	{
		cout<<i<<".elements:";
			cin >> c;
		if(skaitlu_kopa.find(c)!=skaitlu_kopa.end())//Mekleejam vai taads jau bija
		{
			cout <<"Skaitlis "<<c<<" jau ir "<<endl;
		}
		else
		{
			skaitlu_kopa.insert(make_pair(c,i));//Liekam ieksaa, lai var naakosos paarbaudiit
			skaitli_pec_kartas[i]=c;//Liekam masiivaa

			//Piefikseejam lielaako,un taa indeksu (tikpat labi var beigaas map atrast peedeejo elementu)
			if((i==0)||(max_value<c))
			{
				max_value=c;
				max_value_index=i;
			}
			break;
		}
	}
}
if(max_value_index==n)
{
	cout << "Skaitlis "<<max_value<<" jau ir pedejais"<<endl;
}
else
{
	cout << "Mainam pozicijas "<<max_value_index<<" un "<<n<<endl;
	c=skaitli_pec_kartas[max_value_index];
	skaitli_pec_kartas[max_value_index]=skaitli_pec_kartas[n];
	skaitli_pec_kartas[n]=c;
}
//Jaunais masiivs
for(int i=1;i<=n;i++)
{
	cout <<i<<".="<<skaitli_pec_kartas[i]<<endl;
}
return 0;
}

 

Vismaz man uz Linux ar g++ kompileejas un strādā ar 5 ; ja vajag vairaak - pietiek pamainiit augšā define uz citu vērtību.

Labots - Somebody
Link to comment
Share on other sites

Izmanto vai nu to, ko HIGH-Zen iesaka, vai arī kaut ko līdzīgu, ko Somebody - vairāk C++ stilā, kas būtu vēlams, ja programmē C++.

 

Ja raksti C++ stilā, tad visu var arī daudz vienkāršāk uzrakstīt, piemēram:

 

Lai atrastu, vai vērtība jau eksistē masīvā (vektorā):

std::find(v.begin(), v.end(), vertiba)!=v.end()

 

Lai atrastu lielāko elementu un samainītu to vietām ar pēdējo:

vector<int>::iterator maxValue = std::max_element(v.begin(), v.end());
int last = v.back();
v[v.size() - 1] = *maxValue;
*maxValue = last;

Labots - nemirst
Link to comment
Share on other sites

  • 4 weeks later...

man vajag, ka to 1)programmu iespejams atkartot. 2)definet vinju, ka var ievadit lidz 20 skaitliem 3) iegut rezultatu ievadod 5 9 10 skaitlus nospiezot taustinu

<

Link to comment
Share on other sites

ar programmas atkārtotu izpildi tiku galā, bet kā piemēram definēt programmu, lai tā būtu lietojama līdz 20 skaitļiem, un lietotājs var dabūt rezultātu ievadot piecus septiņus vai desmit skaitļus?

Link to comment
Share on other sites

  • 2 weeks later...
valeri42009

cau visiem gudriem cilvekiem, man ir problema ar C++, ir dazi usdevumi...pilidziet uzrakstit:

 

1.Ir dots datnes nosaukums un divi veselie skaitļi N un K. Uzrakstīt programmu, kas izveido datni un ieraksta N rindas, katra no kurām sastāv no K ‘*’ simboliem.

2.Uzrakstīt programmu, kas ieraksta datnē tekstu “Reizinājuma tabula NxM” un reizinājuma tabulu NxM, kur N un M ievada lietotājs.

Link to comment
Share on other sites

Mezavecis

Šeit parasti ir tā, ka cilvēki parasti cenšas palīdzēt tiem, kas kaut ko arī paši dara, respektīvi, parāda to koda daļu, kuru uztaisījis un apraksta problēmu.

 

Pilnībā neviens te A-Z nepildīs uzdevumu.

Link to comment
Share on other sites

valeri42009

#include<iostream>


#include <iostream>
#include <conio.h>
#include <math.h>
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif
#include "pow_fun.h"
using namespace std;


//1.uzd
// Aprakstīt bool tipa funkciju Even(K),
// kas atgriež vērtību true, ja parametrs K ir pāra skaitlis, un false,
// ja nav pāra skaitlis. Uzrakstīt programmu, kas, izmantojot funkciju,
// atrod pāra skaitļu skaitu starp 10 veseliem skaitļiem.

bool Even(int K)
{
if (K % 2 == 0)
{
	return true;
}
else
{
	return false;
}
}

 

 

//2.uzd

// Aprakstīt funkciju RadToDeg®,
// kas atgriež leņķi grādos (R – leņķis radiānos, 0 < R < 2π, 1800 = π).
// Par π skaitļa vērtību izmantot konstanti M_PI no bibliotēkas math.h.
// Uzrakstīt programmu, kas, izmantojot funkciju, atrod 5 leņķu vērtības grādos.

float RadToDeg(int R)
{	
int G=R*(180/M_PI);
{
return G;
}
}

 


//3.uzd
// Aprakstīt funkciju Fact2(N), kas atgriež divkāršo faktoriālu.
// N!! = 1*3*5…*N, ja N – nepāra skaitlis (N > 0); N!! = 2*4*6…*N,
// ja N – pāra skaitlis (N > 0). Uzrakstīt programmu,
// kas, izmantojot funkciju, atrod dotā skaitļa divkāršo faktoriālu.

float Fact2(int N)	
{
if (N % 2 == 0)
	{
	long f=1;
	for (int i=N; i>= 2; i=i-2)
		{
			f=f*i;
		}
	return f;
	}
else (N % 2 !=0);
	{
	long f=1;
	for (int i=N; i>= 1; i=i-2)
	{
		f= f*i;
	}
	return f;
	}	
}

 

 

// 4.uzd


// Atsevišķā modulī aprakstīt funkciju Power(X, Y),
// kas atgriež XY (nav atļauts izmantot nekādas gatavās iebūvētās funkcijas no C++ bibliotēkām).
// Uzrakstīt programmu, kas, izmantojot funkciju, atrod dotā skaitļa A pakāpē B vērtību.
// pow_fun.h

void main()
{
cout << "*** Ievadiet 10 skaitljus! ***\n";
int skaits = 0;
int skaitlis;
for (int i = 1; i <= 10; i = i + 1)
	{
	cin >> skaitlis;
	if (Even(skaitlis) == true)
	{
		skaits = skaits + 1;
	}
	}
	cout << "Para skaitlju skaits ir vienads ar: " << skaits << endl;
{
cout << "Ievadiet 5 vertibas\n";

int G;
int rezultats;
for (int j=1;j<=5;j=j+1)
	{
	cin >> G;
	if (0 < G && G < 2* M_PI)
		{
		rezultats = RadToDeg(G);
		cout << G << "rad = "<<rezultats << " gradi" << endl;
		}
	else
		{
			cout << "ERROR!!!\n";
		}
	}
}
{
int n;
cout << "Ievadiet skaitli:\n";
cin >> n;
if (n > 0)
	{
	cout << n << "!! = " << Fact2(n) << endl;
	}
else
	{
	cout << "ERROR!!!" << endl;
	}
}
{
int A, B;
cout << "Ievadiet skaitli un pakapi!\n";
cin >> A >> B;
cout << power(A,B) << endl;
}
getch ();
}

 

 

 

 

ir kljudas? :)

Labots - Mežavecis
Link to comment
Share on other sites

Mezavecis

Ļoti vēlams izmantot Code blokus, lai kods izskatās saprotamāks.

Link to comment
Share on other sites

Izveido kontu, vai pieraksties esošajā, lai komentētu

Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas

Izveidot jaunu kontu

Piereģistrējies un izveido jaunu kontu, tas būs viegli!

Reģistrēt jaunu kontu

Pierakstīties

Jums jau ir konts? Pierakstieties tajā šeit!

Pierakstīties tagad!
 Share

×
×
  • Izveidot jaunu...