Sākumlapa › Forumi › Citas tēmas › Viss pārējais › C++ uzdevumi
1) Uzrakstīt programmu, kura realizē šādus izpildes nosacījumus:
*programma pieprasa ievadīt no 5 rakstzīmēm sastāvošu C tipa virkni formā xx+yy vai xx-yy , kur xx un yy ir veseli divciparu skaitļi, un aprēķina izteiksmes rezultātu;
*virknes elementus xx un yy iekopēt jaunās virknēs (funkcija strncopy) un pārveidot skaitļos (funkcija atoi).
2) Uzrakstīt programmu, kura realizē šādus izpildes nosacījumus:
*programma pieprasa ievadīt vienu teikumu kā C++ stila virkni un noskaidro rakstzīmju skaitu teikumā, atstarpju skaitu teikumā, teikuma otrā vārda pirmo burtu un tā ACSII kodu;
*otrā vārda pirmais burts atrodas aiz pirmās atstarpes, tāpēc vispirms jāatrod pirmās atstarpes indekss (funkcija find). Tad otrā vārda pirmā burta indekss būs par 1 lielāka nekā atstarpes indekss.
Paldies jau iepriekš!
Enīvej. Pasaki vienu no divām lietām:
1) Cik tālu esi ticis, ko tieši nesaproti un pret ko atduries (iekopē daļu koda, ar saviem komentāriem, piem.)
– vai –
2) Kāpēc negribi mācīties un cik priecīgi mums būs Ziemassvētki par gatava risinājuma izsniegšanu uz paplātes
//c stila virknes_1
#include
#include
#include
#include
using namespace std;
int main()
{
char xx[5], yy[5];
int rez,virk;
cout<<"Ievadiet virkni: "; cin >> xx >> yy;
strcpy(xx,yy);
cout<<"Ievadita virkne: "<< virk <
#include
using namespace std;
int main()
{
string s;
int sk, ast;
cout <<"Ievadiet virkni: ";
getline (cin, s);
sk=s.length();
ast=s.find(” “, 1);
cout<<"Rakstzimju skaits virkne: " << sk <
1) Pamācīties un apgūt pamatus.
2) Uzdoto uzdevumu mēģināt izprast sākumā un iedziļināties tajā.
3) Par to lietu ir jādomā un tīri fiziski jāmēģina atrisināt (dotajā gadījumā programmēšanas uzdevumiņš).
4) Ja visi pirmie trīs punkti tiks izpildīti smadzenes, ne uzreiz, bet pēc kāda laika izdos PAREIZO rezultātu.
Pieredze un viss pārējais nāks tikai ar laiku. Vecīt saņemies un sāc domāt pats 🙂
Jau ar pirmo koda fragmentu skaidrs, ka te nau aršana. Nau izpratnes par null-terminētajām C virknēm (jāapgūst pamati), ne arī padomāts, kas īsti uzdevumā prasīts (mēģināt izprast), lai kaut pienācīgi sadeklarētu mainīgos.
Neredzu nevienu no divām prasītajām funkcijām – strncpy() un atoi(), bez kurām atrisinājumu es iedomāties arī nevarētu. Failtrain aizgājis pa citām sliedēm ar nevajadzīgo
Pie pakaļas gan, ka tādi beidz vuzus – tāpat viss ir irsā un tur nekā nevar darīt. Kāpēc nepalīdzēt tiem, kas vismaz prot paprasīt.
Autor – izdomā labu attaisnojumu un teu taps dots no zila gaisa.
1)
#include
#include
#include
using namespace std;
int main()
{
char szVirkne[6], szX[3], szY[3];
int x, y, xy;
cout << "Ievadiet virkni: ";
cin.getline(szVirkne, 6);
strncpy(szX, szVirkne, 2);
szX[2] = 0x0;
strncpy(szY, szVirkne + 3, 2);
szY[2] = 0x0;
x = atoi(szX);
y = atoi(szY);
switch (szVirkne[2]) {
case '+': xy = x + y; break;
case '-': xy = x - y; break;
default: return EXIT_FAILURE;
}
cout << "Rezultats: " << xy << endl;
system("pause");
return EXIT_SUCCESS;
}
2)
#include
#include
#include
using namespace std;
#define MYSPACE ‘ ‘
int main()
{
string s;
unsigned int uStrLen, uFirst, nSpaces;
int lSpace;
char c;
cout << "Ievadiet virkni: ";
getline(cin, s);
if ((uStrLen = s.length()) == 0)
return EXIT_FAILURE;
if ((uFirst = s.find(MYSPACE)) == s.npos)
return EXIT_FAILURE;
lSpace = uFirst;
for (nSpaces = 1; (lSpace = s.find(MYSPACE, lSpace + 1)) != s.npos; nSpaces++);
cout << "Starpenju skaits: " << nSpaces << endl;
cout << "Rakstziimju skaits: " << (uStrLen - nSpaces) << endl;
if ((uFirst != s.npos) && (uFirst < (uStrLen - 1)) && (isalpha(c = s.at(uFirst + 1))))
cout << "Otraa vaarda pirmais burts: " << c << " (ASCII = " << int(c) << ")";
else
cout << "Ievadiits tikai viens vaards vai ievadiitaa virkne ir tizla.";
cout << endl;
return EXIT_SUCCESS;
}
Kāpēc tās muļķības strādā – jādomā pašam.
Preses relīzes