Форум

Data.BG Форуми: Курсови работи - условия и решения part2 - Data.BG Форуми

Прехвърляне към съдържание

  • (16 Страници) +
  • 1
  • 2
  • 3
  • 4
  • Последна »
  • Вие не можете да започнете нова тема
  • Вие не може да отговаряте на тази тема

Курсови работи - условия и решения part2

#21
Потребителят е неактивен   nayden 

  • Група: Потребители
  • Мнения: 103
  • Регистриран: 04-November 04
  • Репутация: 0
  • Град:Пловдив
Зададени са n окръжности (n<=10), с параметри: абциса и ордината на центъра; радиус. И m точки (m<=20) с параметри: абциса и ордината. Да се определи коя точка в колко окръжности лежи!

ЕЗИК: C


#include <stdio.h> 

#include <math.h> 



typedef struct { 

   double x; 

   double y; 

} tPoint; 



typedef struct { 

   double radius; 

   tPoint centre; 

} tCircle; 



typedef struct { 

   tPoint point; 

   int	num_of_circles; 

} tPointInCircle; 



int main() 

{ 

   tCircle circle[10]; 

   tPointInCircle  point[20]; 



   int n; //broi okrajnosti 

   int m; //broi to4ki 



   int i, j; 



   do { 

	  printf("Circles: "); 

	  scanf("%d", &n); 

   } while (n>10 || n<1); 



   do { 

	  printf("Points: "); 

	  scanf("%d", &m); 

   } while (m>20 || m<1); 

	

   printf("nnEnter circles:n"); 

	

   for(i=0; i<n; ++i) { 

	  printf("Circle %d:n", i+1); 

	  printf("tcentre x: "); scanf("%lf", &circle[i].centre.x); 

	  printf("tcentre y: "); scanf("%lf", &circle[i].centre.y); 

	  printf("t  radius: "); scanf("%lf", &circle[i].radius); 

   } 

	

   printf("nnn"); 

   printf("Enter points:n"); 

	

   for(i=0; i<m; ++i) { 

	  printf("Point %d:n", i+1); 

	  printf("tx: "); scanf("%lf", &point[i].point.x); 

	  printf("ty: "); scanf("%lf", &point[i].point.y); 

   } 



   printf("nPoints: (x, y)n"); 

   for(i=0; i<m; ++i) { 

	  printf("%d. (%.2f, %.2f)n", i+1, point[i].point.x, point[i].point.y); 

   } 



   printf("nCircles: (x, y, radius)n"); 

   for(i=0; i<n; ++i) { 

	  printf("%d. (%.2f, %.2f, %.2f)n", i+1, circle[i].centre.x, circle[i].centre.y, circle[i].radius); 

   } 



   for(i=0; i<m; ++i) { 

	  point[i].num_of_circles = 0; 

	  for(j=0; j<n; ++j) { 

		 if(abs(point[i].point.x-circle[j].centre.
x) <= circle[j].radius && abs(point[i].point.y-circle[j].centre.y)
 <= circle[j].radius) { 

			   ++point[i].num_of_circles; 

		 } 

	  } 

   } 

	

   printf("nn"); 



   for(i=0; i<m; ++i) { 

	  printf("Point %d lies in %d circlesn", i+1, point[i].num_of_circles); 

   } 



   return 0; 

}

0

#22
Потребителят е неактивен   jlennon 

  • Група: Потребители
  • Мнения: 3404
  • Регистриран: 20-June 07
  • Репутация: 600
Въвежда от клавиатурата целочислен масив с N елементи и:
- отпечатва масива на екрана
- сумира положителните елементи
- преброява нечетните елементи
- обръща масива
- проверява масива за симетричност
- максималният елемент


C++

#include <iostream.h>

int a[100], N;

void Vhod()

{

	for(int i=0; i<N; i++)

	{ cout<<"a["<<i<<"]
="; cin>>a[i];}

}

void Print()

{

	for(int i=0; i<N; i++)

		cout<<a[i]<<" ";

	cout<<endl;

}

int Sum()

{

	int Sum=0;

	for(int i=0; i<N; i++)

		if(a[i]>0) Sum+=a[i];

		return Sum;

}

  

  int BrNechetni()

  {

	  int br=0;

	  for(int i=0; i<N; i++)

		  if(a[i]%2!=0) br++;

		  return br;

  }



  void ObMasiv()

  {

	  int c;

	  for(int i=0; i<N/2; i++)

	  { c=a[i];

	  a[i]=a[N-i-1];

	  a[N-i-1]=c;

	  }

  }



  int SimMasiv()

  {

	  for(int i=0; i<N/2; i++)

		  if(a[i]!=a[N-i-1]) return 0;

		  return 1;

  }



  int MaxEl()

  {

	  int max=a[0];

	  for(int i=1; i<N; i++)

		  if(a[i]>max) max=a[i];

		  return max;

  }



  void main()

  {

	  int ch;

	  cout<<"Vyvedete razmernost na masiva: "; cin>>N;

	  do { cout<<"MENUn";

	  cout<<"1. Vyvejdane na masivan";

	  cout<<"2. Izvejdane na masivan";

	  cout<<"3. Suma ot polojitelnite elementin";

	  cout<<"4. Broi nechetni elementin";

	  cout<<"5. Obryshtane na masivan";

	  cout<<"6. Proverka za simetrichnostn";

	  cout<<"7. Maksimalen elementn";

	  cout<<"0. Izhod ot programatan";

	  cout<<"Vyvedete vashiat izbor: ";

	  cin>>ch;

	  switch(ch)

	  {

	  case 1: Vhod(); break;

	  case 2: Print(); break;

	  case 3: cout<<"Sumata ot polojitelnite elementi e "<<Sum()<<endl; break;

	  case 4: cout<<"Broia nechetni elementi e "<<BrNechetni()<<endl; break;

	  case 5: ObMasiv(); break;

	  case 6: if(SimMasiv()) cout<<"Masiva e simetrichen n";

		  else cout<<"Masiva ne e simetrichen n"; break;

	  case 7: cout<<"Max element e "<<MaxEl()<<endl; break;

	  case 0: break;

	  default: cout<<"Nekorekten izborn"; break;

	  }

	  } while (ch!=0);

  }

0

#23
Потребителят е неактивен   yyyyd 

  • Група: Потребители
  • Мнения: 11
  • Регистриран: 19-September 05
  • Репутация: 0
Дадена е квадратна матрица с реални числа. С [MxM] елементи на която да се прочетат от файл. Да се определи абсолютната стойност на сумата на отрицателните елеминти, намиращи се под главния диагонала. Да се изчисли средно-аритметичното на елементите от главния диагонал. Да се определи максималния елемент над главният диагонал и се отстрани стъбла, който го съдържа.
Получениет резултати да се изведат на екрана.

#include "stdafx.h" 

#include <iostream> 

#include <fstream> 

#include <math.h> 



using namespace std; 



int* mMatrix; 

int mCount=1; 

int mRowLenght; 



void OpenFile() 

{ 

   char mName[20],mBuff; 

   int counter=0; 

   cout<<"Vavedete imeto na faila: "; 

   cin>>mName; 



   ifstream mFile; 

   mFile.open(mName); 

   if(!mFile.is_open()){cout<<"
Niama takav filen";return;} 

   while(!mFile.eof()){mFile.get(mBuff)
;if(mBuff!='-')mCount++;} 



   mCount/=2; 

   mRowLenght=(int)sqrt((double)mCount);
 

   mFile.clear(); 

   mFile.close(); 



   mFile.open(mName); 

   mMatrix=new int[mCount]; 

   while(!mFile.eof()){mFile>>mMatrix[
counter];counter++;} 

   for(int i=0;i<mCount;i+=mRowLenght) 

   { 

	  for(int z=i;z<i+mRowLenght;z++)cout<<mMatrix[z]
<<" "; 

	  cout<<endl; 

   } 

   mFile.close(); 

} 



void NegativSum() 

{ 

   int mSum=0; 

   int z=1; 

   for(int i=mRowLenght;i<mCount;i+=mRowLenght) 

   { 

	  

	  for(int p=0;p<z;p++) 

	  { 

		 if(mMatrix[i+p]<0)mSum+=mMatrix[i+p]
; 

	  } 

	  z++; 

   } 

   cout<<"Sumata ot otricatelnite 4isla pod glavnia diagonal e "<<mSum; 

} 



void DiagonalAverige() 

{ 

   int z=0; 

   float mSumAver=0.0; 

   for(int i=0;i<mCount;i+=mRowLenght){mSumAver+=mMatrix[
i+z];z++;} 

   cout<<"nSredno aretmiti4nata stoinost na glavnia diagonal e "<<mSumAver/(int)sqrt((double)
mCount)<<endl; 

} 



void MaxFindUpperHalf() 

{ 

   int z=1; 

   int mColona; 

   int mMax=mMatrix[mCount-1]; 

   for(int i=mCount-1;i>0;i-=mRowLenght) 

   { 

	  

	  for(int p=0;p<z;p++) 

	  { 

		 if(mMax<mMatrix[i-p]){mMax=mMatrix[
i-p];mColona=mRowLenght-p;} 

	  } 

	  z++; 

   } 

   cout<<"Maximalniat element ot elementite nad glavnia diagonal e "<<mMax<<endl; 



	

   for(int p=0;p<mRowLenght-mColona;p++) 

	  for(int i=mColona-1;i<mCount;i+=mRowLenght) 

	  { 

		 mMatrix[i+p]=mMatrix[i+1+p]; 

	  } 



   for(int i=0;i<mCount;i+=mRowLenght) 

   { 

	  for(int z=i;z<i+mRowLenght-1;z++)cout<<mMatrix[z]
<<" "; 

	  cout<<endl; 

   } 

} 



int main() 

{ 

   OpenFile(); 

   NegativSum(); 

   DiagonalAverige(); 

   MaxFindUpperHalf(); 

   return 0; 

}

0

#24
Потребителят е неактивен   fdhfghdfghfgh 

  • Група: Потребители
  • Мнения: 4489
  • Регистриран: 10-February 06
  • Репутация: 66
  • Пол:Мъж
  • Град:София
Да се състави програма за извеждане на ведомост. В системата да се поддържа информация за факултетен номер, име среден успех и доход. По зададени правила да се определи размерът на стипендиите

Език: С

ahmacii каза:

#include <stdio.h> 

#include <conio.h> 

#include <stdlib.h> 

#include <process.h> 

#include <iostream.h> 

#include <string.h> 



#include <dos.h> 





 struct student 

	  { 

		 char name[20]; 

		 int ngr; 

		 float ocVM; 

		 int stip; 



	  }; 



FILE *fp; 

 student stdnt; 

int br=0; 

void loading(void); 

int menu(void); 

void enter(void); 

void output(void); 





void main(void) 

   { 

   int izb; 



   loading(); 

   do 

	 { 

	 clrscr(); 

	 izb=menu(); 

	 switch(izb) 

	  { 

	   case 1: enter();break; 

	   case 2: output();break; 

	   case 3: break; 

	   case 4: printf("n End"); 

	   } 

	 } 

   while (izb!=4); 

} 

int menu(void) 

{ int izbor; 

 clrscr(); 

	gotoxy(30,4); 

	printf("   nn"); 

	printf("nt	   ****************************************************")
; 

	printf("nt	   *				   Menu za izbor				  *"); 

	printf("nt	   *	1. Vyvejdane na danni za studenti			 *"); 

	printf("nt	   *	2. Spisyk sys studenti						*"); 

	printf("nt	   *	3. Spravki									*"); 

	printf("nt	   *	4. Krai na programata						*"); 

	printf("nt	   ****************************************************")
; 

	do { 

   printf("nt	   Vyvedete izbor: 1, 2, 3 Ё«Ё 4: "); 

   scanf("%d", &izbor); 

   printf("nt   Vie Izbrahte izbor: %d",izbor); 

   delay(1000);					 /* Zakysnenie za prochitane na teksta */ 

	} while(izbor<1 || izbor>4); 



return (izbor); 

} 







void enter(void) 

{ 

fflush(stdin); 

printf("n Vyvedete familiq na studenta >"); 

gets(stdnt.name); 

do { 

printf("n Vyvedete nonmer na studenta >"); 

scanf("%d",&stdnt.ngr); 

   } 

while ((stdnt.ngr < 999) || (stdnt.ngr > 9999)); 

do{ 

printf("Sreden uspeh :> "); 

scanf("%f",&stdnt.ocVM); 

   } 

while (stdnt.ocVM<2||stdnt.ocVM>6); 

if (stdnt.ocVM<4.0) stdnt.stip=0; 

if (stdnt.ocVM>=4.0&&stdnt.ocVM<4.5) stdnt.stip=50; 

if (stdnt.ocVM>=4.5&&stdnt.ocVM<5.0) stdnt.stip=60; 

if (stdnt.ocVM>=5&&stdnt.ocVM<5.5) stdnt.stip=70; 

if (stdnt.ocVM>=5.5) stdnt.stip=100; 



if((fp=fopen("STUD.dat","ab")
)==NULL) 

   { 

	printf("n Error opening file"); 

	exit(1); 

   } 

fwrite(&stdnt,sizeof(stdnt),1,fp); 

fclose(fp); 

br++; 

} 



void output(void) 

{ 

clrscr(); 

int flag=0; 

if ((fp=fopen("STUD.dat","rb"))
==NULL) 

   { 

	printf("n Error opening file"); 

	exit(1); 

   } 

	gotoxy(30,4); 

	printf("  nn"); 

   printf("*************************** Spisyk studenti *******************************nnn"); 

   printf("ntЙННННННННННННННННННННЛНННННННННЛННННННННННЛННННННННННЧ"
); 

   printf("ntЗ Familiq na student З  Nomer  ЗSreden uspЗStipendiq З"); 

   printf("ntМННННННННННННННННННННОНННННННННОННННННННННОННННННННННЖ"
); 

while (fread(&stdnt,sizeof(stdnt),1,fp))
 

{ 

   flag=1; 

   printf("ntЗ%20sЗ%9dЗ%10fЗ%10dЗ",stdnt.name,stdnt.
ngr,stdnt.ocVM,stdnt.stip); 

} 

printf("ntИННННННННННННННННННННКНННННННННКННННННННННКННННННННННШ"
); 

printf("ntttt Natisni klavish ......"); 

if (!flag) printf("n Empty file !"); 

fclose(fp); 

getch(); 

} 



void loading(void) 

{  int timer=0; 

clrscr(); 

gotoxy(29,12); 

printf("‡ °Ґ¦¤ ­Ґ. Њ®«ї Ї®· Є ©ІҐ!n"); 

gotoxy(35,13); 

do 

   { 

	  printf("."); 

	  delay(500); 

	  timer++; 

   } 

while (timer<11); 

}

http://forums.data.bg/index.php?act=findpost&hl=&pid=6528. ..hlight=#6528899
Архив на писаните от мен курсови задачи по програмиране
0

#25
Потребителят е неактивен   toretic 

  • Група: Потребители
  • Мнения: 278
  • Регистриран: 02-November 03
  • Репутация: 0
  • Пол:Мъж
  • Град:Пловдив
fdhfghdfghfgh, поне като казваш хората да спамят недей спами и ти.

Условие:
Да се състави програма за обработване на данни за служителите от дадена фирма.
За всеки служител се въвежда следната информация: име, месечна заплата, служебен номер.
Програмата да дава възможност за получаване на следните резултати:
1. Извеждане на списък на всички служители с въведените данни за тях;
2. Пресмятане и извеждане на средната заплата за фирмата;
3. Извеждане на списък на всички служители, които имат заплата по-голяма от средната заплата за фирмата;
4. Извеждане на списък на всички служители, чието име започва с дадена буква;
5. Извеждане на списък на всички служители, подреден в низходящ ред на месечните заплати.
Ако има служители с една и съща заплата, по-напред в списъка да се изведе този, който има по-малък служебен номер
Решение:

#include <iostream.h>



#define MAX 30



//structura za firmata

struct members

{

	   char name[50];

	   int pay;

	   int number;

};



//izvejdane na menuto

void menu()

{

	 cout<<"1. Dobavqne na slujiteli n";

	 cout<<"2. Spisak na vsichki slujiteli i vavedenite za tqh danni n";

	 cout<<"3. Sredna zaplata v firmata n";

	 cout<<"4. Slujiteli sys zaplata po-golqma ot srednata n";

	 cout<<"5. Vsichki slujiteli na koito imeto zapochva s dadena bukwa n";

	 cout<<"6. Vsichki slujiteli podredeni po nizhodqsht red na mesechnata zaplata n";

	 cout<<"7. Exit n";

}



//izchislqvane na sredna zapltata

float sredna_zaplata(struct members firm[], int current_num_members)

{

	  int i,sum = 0;

	  float sr_sum;

	  //namirame sumata

	  for(i=0; i<current_num_members; i++)

	  {

	   sum = sum + firm[i].pay;

	  }

	  //delim na obshtiqt broi sumata

	  sr_sum = sum / current_num_members;

	  //vrashtame srednata zaplata

	  return sr_sum;

}



//printira intoto za slujitel podaden kato parametar

void  print_member(struct members firm)

{

	  cout << "nName: " << firm.name;

	  cout << "nPay: " << firm.pay;

	  cout << "nNumber: " << firm.number;

}



//vhodna to4ka

int main(void)

{

	//kolko dushi

	int num_members, current_num_members = 0;

	//promenliva za firmata i promenliva za zapazvane informaciqta na firmata v druga promenliva

	struct members firm[MAX], temp[MAX];

	int i,j,choice;

	int sum = 0;

	float sr_sum;

	char search;

	

	//dokato num_members e po golqmo ot MAX - loop

	do

	{

	 cout << "Count members: ";

	 cin >> num_members;

	}

	while(num_members > MAX);

	

	cout << "nn";

	

	//generirane na menuto i izbor na element ot nego

	do

	{

		//printirane na informaciq za menuto

		menu();

		

		cin >> choice;

		

		switch(choice)

		{

			case 1:

				 //dobavqne na slujiteli do num_membrs 

				for(i=0; i<num_members; i++)

				{

				 cout << "Member: " << i + 1;

				 cout << "nName: ";

				 cin >> firm[i].name;

				 cout << "Pay: ";

				 cin >> firm[i].pay;

				 cout << "Number: ";

				 cin >> firm[i].number;

				 cout << "n";

				 current_num_members++;

				}

			break;

			case 2:

				 //otpetatva vsichki slujiteli

				cout << "Members:n";

				for(i=0; i<current_num_members; i++)

				{

				 cout << "nMember: " << i + 1;

				 print_member(firm[i]);

				 cout << "nn";

				}

			break;

			case 3:

				 //izvikvane na funkciqta koqto izchislqva srednata zaplata na firmata

				 cout << "Srednata zaplata e: " << sredna_zaplata(firm, current_num_members);

				 cout << "n";

				 break;

			case 4:

				 //izvikvane na funkciqta koqto izchislqva srednata zaplata na firmata

				 sr_sum = sredna_zaplata(firm, current_num_members);

				 //tyrsim slujitel iqto zaplata e > ot srednata izchislena po gore

				for(i=0; i<current_num_members; i++)

				{

						 //ako zaplatata > ot srednata izvedi slujitelq

						 if(firm[i].pay > sr_sum)

						 {

							 cout << "nMember: " << i + 1;

							 print_member(firm[i]);

							 cout << "nn";

						 }

				}

				 break;

			case 5:

				 cout << "vavedi bukva: ";

				 cin >> search;

				 cout << "nnMembers s bukva " << search;

				 cout << "n";

				 //po vavedena bukva ot klaviaturata tyrsi vsichki slujiteli koito zapo4vat s tazi bukva

				for(i=0; i<current_num_members; i++)

				{

						 //ako bukvata savpadata s pavata bukva ot tozi slujitel izvedi slujitelq

						 if(firm[i].name[0] == search)

						 {

							 cout << "nMember: " << i + 1;

							 print_member(firm[i]);

							 cout << "nn";

						 }

				}

				 break;

			case 6:

				 //kopirai vsichki danni ot firm vav temp za da sortirame temp po nizhodqsht

				 memcpy(temp,firm, sizeof(firm));

				 //obhojdame temp i tyrsim slujitelq za minimalna zaplata

				 for (i=0;i<current_num_members;i++)

				{

					 //vzimame slujitelq s nai niska zaplata

					struct members min = temp[0];

					int index=0;

					for (j=1;j<current_num_members-i;j++)

					{

						if (temp[j].pay<min.pay)

						{

							min=temp[j];

							index=j;

						}

					}

					//sled namiraneto na slujitel s nai niskata zaplata go zapisvame v temp na parvo mqsto i vzimame sledvashtiqt

					temp[index]=temp[current_num_members-1-i];

					temp[current_num_members-1-i]=min;

				}

				//sled sortiraneto printirame sortiqranata struktura

				for(i=0; i<current_num_members; i++)

				{

				cout << "nMember: " << i + 1;

				 print_member(temp[i]);

				 cout << "nn";

				}

				 break;

			case 7: 

				 //izlizame ot programata

				 exit(0);

			break;

		}

	}

	//ciklim do izbirane na 7 ot klaviatura ot menuto

	while(1);

	

	//krai!

	return 0;

}

0

#26
Потребителят е неактивен   nayden 

  • Група: Потребители
  • Мнения: 103
  • Регистриран: 04-November 04
  • Репутация: 0
  • Град:Пловдив
Поддържане на данни за детайли във файл. За всеки детайл да се записва информация за обем; размери x, y, z; име; цвят. Програмата да осигурява операции:

* Добавяне на нов детайл
* Търсене на детайл по зададен критерий: име, цвят, обем
* Показване на всички детайли

Файла за информацията да бъде двоичен



ЕЗИК: С

#include <stdio.h>			//включваме библиотека за стандартен в/и

#include <stdlib.h>			//стандартна библиотека (за exit())

#include <string.h>			//библиотека за низове

#include <conio.h>			//нестандартна библиотека за в/и



typedef struct {			//дефинираме тип структура за

	double x;				//размерността

	double y;				//структурата съдържа информация

	double z;				//за размера на обекта (x, y, z)

} tDim;						//име на типа tDim



/* дефинираме тип структура, който пази информация за

   отделните детайли */

typedef struct {			

	char  name[20];			//име на детайла		

	char  color[20];		//цвят на детайла

	tDim   dim;				//размерност на детайла

	double capacity;		//обем на детайла

} tDetInfo;					//име на типа tDetInfo



FILE *db;					//указател от тип файл

							//глобална променлива за работа с файл



/* прототипи на функции */

void addDet(void);			//функция за добавяне на детайл

void showAll(void);			//функция за показване на всички детайли

void searchDet(void);		//функция за търсене на детайл по даден критерий



/* функции за търсене */

void byName(void);			//терсене на детайл по име

void byColor(void);			//търсене на детайл по свят

void byCapacity(void);		//търсене на детайл по обем



/* функция за проверка за съществуване на файла с базата данни */

int dataExists(void);		//връща 1 ако съществува

							//връща 0 ако не съществува, или не може да се зареди



int main(void)				//главна функция

{

	char choice;			//променлива която държи избора от менюто



	do {					//използваме безкраен цикъл за показване на менюто



		clrscr();			//изчистваме екрана



		puts("Main Menu:");	//показваме разни глупости :)

		puts("1. Add");

		puts("2. Search");

		puts("3. Show all");

		puts("4. Exit");

		printf("Enter your choice [ ]bb");



		/* проверяваме за валидация на входа, демек дали сме въвели число от 1 до 4 :) */

		for(choice=getche(), printf("b"); choice < '1' && choice > '4'; choice=getche(), printf("b"));

		/* оттук нататък сме сигурни че сме въвели число от 1 до 4 */



			 if(choice == '1') addDet();		//1 - извикваме функция за добавяне на детайл

		else if(choice == '2') searchDet();		//2 - извикваме функция за търсене на детайл

		else if(choice == '3') showAll();		//3 - извикваме функция за показваме на всички детайли

		else break;								//4 - прекъсваме безкрайния цикъл



	} while(1);				//условие за безкраен цикъл



	return 0;				//програмата връща 0 при завършване без грашка

}



void addDet(void)			//функция за добавяне на детайл

{

	int num;				//num - държи стойността на броя на детайлите които искаме да добавим

	int old_num = 0;		//old_num - променлива в която се записва броя на съществуващите до момента детайли

	int i;					//i - управляваща проментлива

	tDetInfo detail;		//detail - променлива която запазва информация за един детайл



	if(dataExists()) {		//ако базата от данни съществува



		db = fopen("details.db", "rb");		//отваряме базата данни 'details.db' за четене



		/* записваме броя на съществуващите детайли в поменливата old_num*/

		if(fread(&old_num, sizeof(old_num), 1, db) != 1) {

			puts("nError reading number of details");

			getch();

			exit(1);

		}



		/* затваряме файла */

		if(fclose(db) == EOF) {

			printf("Error closing database file.n");

			getch();

			exit(1);

		}



		/* отваряме файла наново (за четене/запис), за да се върнем в началото му */

		db = fopen("details.db", "r+b");



	}

	else {  /* ако няма базаданни */



		/* създаваме база данни с име 'details.db' и отваряме файла за запис*/

		if((db=fopen("details.db", "wb")) == NULL) {

			puts("nError loading database");

			getch();

			exit(1);

		}



	}



	clrscr();		//изчистваме екрана



	printf("How many details you want to add: ");		//подканващо съобщение

	scanf("%d", &num); fflush(stdin);		//в num записваме въведения брой от клавиатурата

											//и след това изчистваме буфера на входа



	old_num += num;			//в old_num прибавяме въведения брой

							//по този начин изчисляваме новия брой детайли



	/* като първи елемент в базата данни записваме боря на детайлите */

	if(fwrite(&old_num, sizeof(old_num), 1, db) != 1) {

		puts("nError writing number of details to database file");

		getch();

		exit(1);

	}



	/* ако във файла има вече въведени детайли е необходимо да идем в края на файла			 *

	 * от където можем да започнем добавянето. В противен случай препокриваме съществуващи дани */

	if(fseek(db, 0, SEEK_END)) {

		puts("Error positioning to the end");

		getch();

		exit(1);

	}



	for(i=0; i<num; ++i) {		//завъртаме цикъл за необходимия брой детайли



		printf("nDetail %d:n", i+1);

		printf("t	   Name: "); gets(detail.name); fflush(stdin);

		printf("t	  Color: "); gets(detail.color); fflush(stdin);

		printf("tDimension x: "); scanf("%lf", &detail.dim.x); fflush(stdin);

		printf("tDimension y: "); scanf("%lf", &detail.dim.y); fflush(stdin);

		printf("tDimension z: "); scanf("%lf", &detail.dim.z); fflush(stdin);

		/* изчисляваме обема */

		detail.capacity = detail.dim.x * detail.dim.y * detail.dim.z;

		printf("t   Capacity: %.2f", detail.capacity);



		/* записваме информацията за детайла в базата данни */

		if(fwrite(&detail, sizeof(detail), 1, db) != 1) {

			puts("nError adding detail to database file");

			getch();

			exit(1);

		}



	}



	/* затваряме базата данни */

	if(fclose(db) == EOF) {

		puts("nError closing database file");

		getch();

		exit(1);

	}



	printf("nnPress any key to return ro main menu...");	//подканващо съобщение



	getch();	//изчакваме за натискане на бутон от клавиатурата

}



void searchDet(void)		//фунцкия за избор на типа на търсенето

{

	tDetInfo detail;		//detail - променлива която запазва информация за един детайл

	int i, num;				//num - държи стойността на броя на детайлите които искаме да добавим

							//i - управляваща променлива

	char choice;			//choice - променлива за избор от менюто



	if(dataExists()) {		//ако има базаданни



		do {				//използваме безкраен цикъл за реализиране на менюто



			clrscr();		//изчистваме екрана

			puts("Search details by:");		//показваме менюто

			puts(" 1. Name");

			puts(" 2. Color");

			puts(" 3. Capacity");

			printf("Enter your choice [ ]bb");	//подканваме за избор



			/* проверяваме за валидация на входа, демек дали сме въвели число от 1 до 3 :) */

			for(choice=getche(), printf("b"); choice < '1' && choice > '3'; choice=getche(), printf("b"));



				 if(choice == '1') byName();		//1 - търсене по име

			else if(choice == '2') byColor();		//2 - търсене по цвят

			else				   byCapacity();	//3 - търсене по обем



			printf("nNew search [y/n]: ");			//пита дали искаме ново търсене



			/* проверяваме за валидация на входа, демек дали сме въвели y или n :) */

			for(choice=getche(), printf("b"); choice != 'y' && choice != 'n'; choice=getche(), printf("b"));

			if(choice == 'n') break;	//ако сме въвели n се въщаме в главното меню



		} while(1);		//условие за безкраен цикъл

	}

	else {  //ако няма базаданни



		clrscr();	//изчистваме екрана

		printf("nNo databasenPress any key to return to main menu..."); //подканващо съобщение

		getch();	//изчакваме за натискане на бутон от клавиатурата



	}

}



void showAll(void)					//функция за показване на всички детайли

{

	tDetInfo detail;				//detail - променлива която запазва информация за един детайл

	int i, num;						//num - държи стойността на броя на детайлите които искаме да добавим

									//i - управляваща променлива



	clrscr();						//изчистваме екрана

	printf("All details:nn");		



	if(dataExists()) {				//ако има базаданни



		db = fopen("details.db", "rb");		//отваряме файла за четене

		

		/* в num записваме броя на детайлите във файла, това е прървия елемент от файла */

		if(fread(&num, sizeof(num), 1, db) != 1) {

			puts("nError reading number of details");

			getch();

			exit(1);

		}	



		printf("nNumber of details: %dn", num);	//показваме колко са детайлите



		for(i=0; i<num; ++i) {			//завъртаме цикъл за всички детайли



			/* в detail записваме информация за i-тия детайл */

			if(fread(&detail, sizeof(detail), 1, db) != 1) {

				puts("nError reading detail to database file");

				getch();

				exit(1);

			}



			/* извеждаме записаната информация на екрана */

			printf("nDetail %d:n", i+1);

			printf("t	   Name: %sn", detail.name);

			printf("t	  Color: %sn", detail.color);

			printf("tDimension x: %.2fn", detail.dim.x);

			printf("tDimension y: %.2fn", detail.dim.y);

			printf("tDimension z: %.2fn", detail.dim.z);

			printf("t   Capacity: %.2fn", detail.capacity);



		}	//край на цикъла

	

		/* затваряме файла с базата данни */

		if(fclose(db) == EOF) {

			puts("nError closing database file");

			getch();

			exit(1);

		}

	}

	else {	//ако няма база данни

		printf("nNo databasen");

	}



	/* подканващо съобщение */

	printf("nnPress any key to return ro main menu...");



	getch();	//изчакваме за натиснат бутон от клавиатурата

}



//-----------------------------------------------------------
------------------------



void byName(void)				//функция за търсене на детайл по зададено име

{

	tDetInfo foundDet[100];		//масив от детайли. Възможност за съхранение до 100 намерени детайли

	tDetInfo detail;			//работна променлива която съхранява информация за 1 детайл

	char name[20];				//име на детайла, който искаме да намерим

	int i, num, ind;			//num - броя на всички детайли, намиращи се във файла

								//ind - броя на намерените детайли

								//i   - управляваща променлива



	printf("nnEnter name: ");		//подканващо съобщение за въвеждане на критерия (името)

	gets(name); fflush(stdin);



	/* отваряме базата данни за четене */

	if((db=fopen("details.db", "rb")) == NULL) {

		puts("nError loading database");

		getch();

		exit(1);

	}



	/* в num записваме броя на всички детайли във файла */

	if(fread(&num, sizeof(num), 1, db) != 1) {

		puts("nError reading number of details");

		getch();

		exit(1);

	}



	ind = 0;	//като за начало приемаме че сме намерили 0 елементи

	for(i=0; i<num; ++i) {		//завъртаме цикъл за всички детайли за да ги претарашуваме :)



		/* записваме в помощната променлива информацията за i-тия детайл */

		if(fread(&detail, sizeof(detail), 1, db) != 1) {

			puts("nError reading detail to database file");

			getch();

			exit(1);

		}



		/* сравняваме името му с въведеното от нас като критерии */

		if(!strcmp(name, detail.name)) { //ако съвпадне

			foundDet[ind] = detail;	//добавяме текущия детайл към масива с намерените детайли

			++ind;			//вдигаме бройката на намерените детайли

		}



	}



	if(ind) {		//ако ind e различно от 0 то значи има намерени детайли, йеее :)



		printf("nnFound details: %dn", ind);		//показваме колко са намерените детайли



		/* извеждаме на екрана всички намерени детайли */

		for(i=0; i<ind; ++i) {

			printf("nDetail %d:n", i+1);

			printf("t	   Name: %sn", foundDet[i].name);

			printf("t	  Color: %sn", foundDet[i].color);

			printf("tDimension x: %.2fn", foundDet[i].dim.x);

			printf("tDimension y: %.2fn", foundDet[i].dim.y);

			printf("tDimension z: %.2fn", foundDet[i].dim.z);

			printf("t   Capacity: %.2fn", foundDet[i].capacity);

		}



	}

	else { //ако няма намерени детайли



		printf("nnNo details found.n");



	}



	/* затваряме файла с базата данни */

	if(fclose(db) == EOF) {

		puts("nError closing database file");

		getch();

		exit(1);

	}



}



void byColor(void)

{

	tDetInfo foundDet[100];

	tDetInfo detail;

	char color[20];

	int i, num, ind;

	int found = 0;



	printf("nnEnter color: ");

	gets(color); fflush(stdin);



	if((db=fopen("details.db", "rb")) == NULL) {

		puts("nError loading database");

		getch();

		exit(1);

	}



	if(fread(&num, sizeof(num), 1, db) != 1) {

		puts("nError reading number of details");

		getch();

		exit(1);

	}



	ind = 0;

	for(i=0; i<num; ++i) {



		if(fread(&detail, sizeof(detail), 1, db) != 1) {

			puts("nError reading detail to database file");

			getch();

			exit(1);

		}



		if(!strcmp(color, detail.color)) {

			found = 1;

			foundDet[ind] = detail;

			++ind;

		}



	}



	if(found) {



		printf("nnFound details: %dn", ind);



		for(i=0; i<ind; ++i) {

			printf("nDetail %d:n", i+1);

			printf("t	   Name: %sn", foundDet[i].name);

			printf("t	  Color: %sn", foundDet[i].color);

			printf("tDimension x: %.2fn", foundDet[i].dim.x);

			printf("tDimension y: %.2fn", foundDet[i].dim.y);

			printf("tDimension z: %.2fn", foundDet[i].dim.z);

			printf("t   Capacity: %.2fn", foundDet[i].capacity);

		}



	}

	else { //not found



		printf("nnNo details found.n");



	}



	if(fclose(db) == EOF) {

		puts("nError closing database file");

		getch();

		exit(1);

	}



}



void byCapacity(void)

{

	tDetInfo foundDet[100];

	tDetInfo detail;

	double capacity;

	int i, num, ind;

	int found = 0;



	printf("nnEnter capacity: ");

	scanf("%lf", &capacity); fflush(stdin);



	if((db=fopen("details.db", "rb")) == NULL) {

		puts("nError loading database");

		getch();

		exit(1);

	}



	if(fread(&num, sizeof(num), 1, db) != 1) {

		puts("nError reading number of details");

		getch();

		exit(1);

	}



	ind = 0;

	for(i=0; i<num; ++i) {



		if(fread(&detail, sizeof(detail), 1, db) != 1) {

			puts("nError reading detail to database file");

			getch();

			exit(1);

		}



		if(capacity == detail.capacity) {

			found = 1;

			foundDet[ind] = detail;

			++ind;

		}



	}



	if(found) {



		printf("nnFound details: %dn", ind);



		for(i=0; i<ind; ++i) {

			printf("nDetail %d:n", i+1);

			printf("t	   Name: %sn", foundDet[i].name);

			printf("t	  Color: %sn", foundDet[i].color);

			printf("tDimension x: %.2fn", foundDet[i].dim.x);

			printf("tDimension y: %.2fn", foundDet[i].dim.y);

			printf("tDimension z: %.2fn", foundDet[i].dim.z);

			printf("t   Capacity: %.2fn", foundDet[i].capacity);

		}



	}

	else { /*not found*/



		printf("nnNo details found.n");



	}



	if(fclose(db) == EOF) {

		puts("nError closing database file");

		getch();

		exit(1);

	}



}



int dataExists(void)		//фунцкия за проверка за съществуване на база от данни

{

	if((db = fopen("details.db", "r")) == NULL) {

		return 0;			//ако файла не съществува или не може да се отвори

							//функцията връща 0

	}

	else {					//ако съществува и може да се отвори



		/* затваряме файла */

		if(fclose(db) == EOF) {

			printf("Error closing database file.n");

			exit(1);

		}

		

		return 1;	//и функцията връща 1

	}

}



/* КОНЕЦ */

0

#27
Потребителят е неактивен   bocibaraboci 

  • Група: Потребители
  • Мнения: 78
  • Регистриран: 06-April 05
  • Репутация: 0
  • Град:Варна
Да се състави програма, която да съдържа следните функции:
* Съставяне на два динамично представени двуцвързани списъка с целочислени данни, съдържащи се във вънвен файл;
* Сортиране на елементите в списъците по мотода чрез прост избор/селекция;
* Изграждане на опшка, съдържаща елементите на двата списъка;
* Запис на изходните данни във външен файл;
Главна функция main() - с меню за избор на функции и проверка за състоянието на данните. (Файловете с който се работи, трябва предварително да съществуват).

Компилирана е на: Visual Studio 6.0

Език С/С++


#include<iostream>

#include<fstream>

#include<string>

//#include<windows.h>



using namespace std;





//fail-ove za 4etene

char t1[]="F1.txt";

char t2[]="F2.txt";





//file za zapis

char tt1[]="FF.txt";

						 



//structura na opa6ka

struct queue {		   

	   int key;

	   queue *next;

} *first = NULL, *last=NULL;





//dvata spis1ka

struct elem{

	   int key;

	   elem *prev;

	   elem *next;

} *start1, *start2;







elem* add(elem *start, int n) 

{

	   elem *p = start;

	   start  = new elem;

	   start->key = n;

	   start->next = p;

	   start->prev = NULL;



	  return start;

}

   



// prehv1rlqme file-ovete v1v spis1cite

elem* readFile(elem *start, char *fname) 

{

	fstream fp(fname, ios::in);

	

	if (!fp.is_open())

	{

		//setlocale(LC_ALL, ".OCP");

		cout << "-> Fail-a " << fname << " NE sy6testvuva!! ";

		cin.get();

		exit(1);

	}

	

	int n;

	while(!fp.eof())

	{

		fp >> n;

		start = add(start, n);

	}

	return start;

}







//prqka selekciq

void sort (elem * start)				  

{

	 int min, rab;

	 for( elem* i=start; i->next; i=i->next)

	 {

		  min=i->key;

		  for( elem* j=i->next; j;j=j->next)



		  if(min>j->key)

		  {

			  rab=min;

			  min=j->key;

			  j->key=rab;

		  }



		  i->key=min;

	 }

}			







void list(elem* start) {

	for (elem *p = start; p; p = p->next)

	{

		cout << p->key << " ";

	}

}



 

	 

// dobavqne na elementi v opa6kata 

void push(int n)

{

	queue *p = last; 

	

	last=new queue;

	last->key = n;

	last->next = NULL;

	

	if (p != NULL)

			p->next = last;



	if (first == NULL)

			first = last;

}





void list_queue()

{

   for (queue *p = first; p; p = p->next)

   {

		cout << p->key << " ";

	}

}







void build(elem* s1, elem* s2)

{

	elem* n1 = s1;

	elem* n2 = s2;



	while (n1 != NULL || n2 != NULL)

	{

		if (n1 && (!n2 || (n1->key < n2->key)))

		{

			push(n1->key);

			n1 = n1->next;

		}

		else 

		{

			push(n2->key);

			n2 = n2->next;

		}

	}

}









//zapis vyv vyn6en fail 

void save_file( char *fname) 

{

	 fstream fp(fname, ios::out);

	

	if (!fp.is_open())

	{

		//setlocale(LC_ALL, ".OCP");

		cout << "-> Fail-a " << fname << " NE sy6testvuva!! ";

		cin.get();

		exit(1);

	}

	

	for (queue *p = first; p; p = p->next)

	{

		fp << p->key << endl;

	}

	



	fp.close();



}







char menu()

{

	char ch;



		system("cls");

		cout<<endl;

		

		cout<< "1. Systavqne na dvata dvusvyrzani spisyka "<<endl;		

		cout<< "2. Sortirane na elementite v spis1cite "<<endl;		   

		cout<< "3. Izgravdane na dinami4na struktura opa6ka "<<endl;	  

		cout<< "4. Zapis na izhodnite rezultati vyv vyn6en file "<<endl;  

		cout<<endl;

		cout<< "-> -> Molq vyvedete va6iq izbor <- <- "<<endl;

		cin>>ch;

		

	return ch;

	

	

}









int main()

{

	char ch;

	do  {

	ch=menu();

	//	setlocale(LC_ALL, ".OCP");



		switch (ch) {

		case '1':

			cout << "Spisyk 1" << endl;		//List 1

			start1 = readFile(start1,t1);   

			list(start1);

			cout << endl << endl;

			cout << "Spisyk 2" << endl;		  // List 2

			start2 = readFile(start2,t2);   

			list(start2);

			break;

		case '2':

			cout << "Spisyk 1" << endl;		  //List 1

			sort(start1);

			list(start1);

			cout << endl << endl;

			cout << "Spisyk 2" << endl;		  //List 2

			sort(start2);

			list(start2);

			cout << endl << endl;

			break;

		case '3':  

			

			cout <<"Opa6ka:" << endl;	   //queue

			build(start1, start2);

			list_queue();

			break;	  

		case '4':

			save_file(tt1);

			break;

		}

		

		cin.get();		

		cin.get();	 

	}while(ch!='4');

	

	return 0;

}

0

#28
Потребителят е неактивен   keeperofthegrove 

  • Група: Потребители
  • Мнения: 710
  • Регистриран: 23-October 06
  • Репутация: 1
  • Пол:Мъж
  • Град:Тутракан
  • Интереси:������������

Velikovvv каза:

Някои може ли да ми помогне-имам задачата до някаде,но не мога да я продалжа!

Двумерен масив да се запълни с измерени напрежения.По редовете са дните, а по стълбовете-измерванията.Да се състави програма за намиране и извеждане на минималните измервания за всеки ден!

Би трябвало да е нещо такова:

#include <iostream>

using namespace std;

const int  N = 3, M = 4;

typedef int mtype[N][M];

void init_massive(mtype hara, int n, int m)

{

	 for(int i = 0; i < n; i++)

			 for(int j = 0; j < m; j++) cin >> hara[i][j];

}

void find_min(mtype hara, int n, int m)

{

	 int min_value = 0;

	 for(int i = 0; i < n; i++)

	 {	   

			 min_value = hara[i][0];

			 for(int j = 1; j < m; j++) if(hara[i][j] < min_value) min_value = hara[i][j];

			 cout << "Day" << (i + 1) << ": " << min_value << endl;

	 }

}

int main()

{

	mtype ara;

	init_massive(ara, N, M);

	find_min(ara, N, M);

	return 0;

}

П.С: Идеята за 'mtype' е "взета" от тук и специално от мнението на 'wqw'...
0

#29
Потребителят е неактивен   keeperofthegrove 

  • Група: Потребители
  • Мнения: 710
  • Регистриран: 23-October 06
  • Репутация: 1
  • Пол:Мъж
  • Град:Тутракан
  • Интереси:������������

courage каза:

Това е една от курсовите ми задачи,ако можете да ми помогнете :S

Напишете програма, която въвежда от клавиатурата двойки числа. За всяка въведена двойка определя по-голямото число и го повдига на квадрат. Въвеждането спира когато се въведе двойката (0,0). Покажете на екрана въведените двойки и резултати от повдигате на квадрат.

Език:C

Решение:

#include <stdio.h>

int main()

{

	int a, b;

	a = b = 0;

	

	printf("Enter the two numbers: n");

	scanf(" %d %d", &a, &b);

	while(a || b)

	{

		(a > b)? a *= a : b *= b;

		printf("Now the numbers are: %d, %dn", a, b);

		printf("Enter the two numbers: n");

		scanf(" %d %d", &a, &b);

	}

	return 0;

}

0

#30
Потребителят е неактивен   anatolk 

  • Група: Потребители
  • Мнения: 916
  • Регистриран: 02-April 05
  • Репутация: 1
  • Град:София
tzetzopicha, пирамиди:

#include <stdio.h>



int main()

{

	int I,J,K;



	/* 1 */

	for(I='A';I<='Z';I++){

		printf("%*c",'Z'-I+1,' ');

		for(J=I;J>='A';J--)

			printf("%c ",J);

		printf("n");}



	/* 2 */

	for(I='A',J=I,K=1;I<='Z';I++){

		if(I==J){

			J+=K++;

			printf("n");}

		printf("%c",I);}

}

0

#31
Потребителят е неактивен   keeperofthegrove 

  • Група: Потребители
  • Мнения: 710
  • Регистриран: 23-October 06
  • Репутация: 1
  • Пол:Мъж
  • Град:Тутракан
  • Интереси:������������

Velikovvv каза:

НАПРАВЕТЕ ПРОГРАМА ЗА СОРТИРАНЕ НА ЕДНОМЕРЕН МАСИВ ПО ВЪЗХОДЯЩ И НИЗХОДЯЩ РЕД


МОЛЯ ВИ СЕ ПОМОГНЕТЕ СПЕШНО Е
БЛАГОДАРЯ ПРЕДВАРИТЕЛНО

Решение със сортиране по метода на мехурчетата:

#include <iostream>

using namespace std;

const int MAX = 5;

void init_massive(int* inum, int max)

{

	 cout << "Input the elements of the massive: " << endl;

	 for(int i = 0; i < max; i++)

	 {

			 cout << "For element[" << i << "] = " << endl;

			 cin >> inum[i];

	 }

}

void usort(int* inum, int max)

{

	 int temp = 0;

	 for(int i = 0; i < max - 1; i++)

	 {

			 for(int j = (i + 1); j < max; j++)

			 {

					 if(inum[i] > inum[j])

					 {

								temp = inum[i];

								inum[i] = inum[j];

								inum[j] = temp;

					 }

			 }

	 }

}

void dsort(int* inum, int max)

{

	 int temp = 0;

	 for(int i = 0; i < max - 1; i++)

	 {

			 for(int j = (i + 1); j < max; j++)

			 {

					 if(inum[i] < inum[j])

					 {

								temp = inum[i];

								inum[i] = inum[j];

								inum[j] = temp;

					 }

			 }

	 }

}

void show_massive(int* inum, int max)

{

	 cout << "--------------------------------------------------n"
;

	 for(int i = 0; i < max; i++) cout << "  " << inum[i] << endl;

}

int main()

{

	 int* N = new int[MAX];

	 init_massive(N, MAX);

	 

	 usort(N, MAX);

	 show_massive(N, MAX);

	 dsort(N, MAX);

	 show_massive(N, MAX);



	 delete[] N;

	 return 0;

}

0

#32
Потребителят е неактивен   keeperofthegrove 

  • Група: Потребители
  • Мнения: 710
  • Регистриран: 23-October 06
  • Репутация: 1
  • Пол:Мъж
  • Град:Тутракан
  • Интереси:������������

mercedesa каза:

Имали ли някой който може да направи тази програма на С :

Зададени са 10 изречения, който завършат на точка. Да се създаде програма (чрез оператор switch), която да избере 2 от тях. Те да се визуализират (всяко на отделен ред). След това да се преброят символите на всяко изречение без точката (да се броят и интервалите). След съобщение: "Po-golyamoto izrechenie ima %d simvola". На нов ред да се визуализира по-дългото изречение. При равенство се издава съобщение: "Dvete izrecheniya sa s raven broy simvoli - %d.". Не се визуализира изречение.
Следват 10-те изречения:
1."Vij kolko hubavo izrechenie sum, izberi mene. ";
2."Pomisli si predi da izbere6 drugite izrecheniya.";
3."Po-dobro izrechenie ot mene nyama da namerish.";
4."Az sum esenno izrechenie I sum bezkrayno kato dujd.";
5."Ako me izberesh, nqma da polu4ish udovostvie.";
6."Dali da chakam dulgo oshte ili da preskocha do bara.";
7."Ne misli poveche, ami izberi izrechenie nomer sedem.";
8."Izrechenie nomer osem e nay-dobroto izrechenie.";
9."Az sum v kraya, no sum mnogo priyatno izrechenie.";
10."Nishto, che sum posledno, az sum nay-dulgoto izrechenie.".
За да няма повторно избиране на изречения, след първото избиране да се забрани неговият повторен избор.
Освен това символите за избор да бъдат между 0 и 9.



Ако някой има представа как се прави тази пограма ще може ли да намери и коментари за нея относно операторите и циклите!
Програмата да започва с
#include<stdio.h>
#include<conio.h>
void main().....


/*

  DevC++

*/



#include <stdio.h>

#define MAX 10

#define MAX_ARRAY 2

int ara[MAX_ARRAY], fillCtr = 0;



void show_sentns(char** ara, int max)

{

	 for(int i = 0; i < max; i++) printf("%sn", ara[i]);

}

void sacount(char* str_in)

{

	 int i = 0;

	 while(str_in[i] != '.') i++;

	 ara[fillCtr++] = i;

	 printf("The selected sentence is:n%snnn", str_in);

}

void compare_sentncs()

{

	 if(ara[0] > ara[1]) printf("The biggest(first) sentence has: %5d symbols.n", ara[0]);

	 else if(ara[0] < ara[1]) printf("The biggest(second) sentence has: %5d symbols.n", ara[1]);

		  else printf("They are equal!n");

}

int main()

{

	char* sentns[MAX] = { "Vij kolko hubavo izrechenie sum, izberi mene.",

						  "Pomisli si predi da izbere6 drugite izrecheniya.",

						  "Po-dobro izrechenie ot mene nyama da namerish.",

						  "Az sum esenno izrechenie I sum bezkrayno kato dujd.",

						  "Ako me izberesh, nqma da polu4ish udovostvie",

						  "Dali da chakam dulgo oshte ili da preskocha do bara.",

						  "Ne misli poveche, ami izberi izrechenie nomer sedem.",

						  "Izrechenie nomer osem e nay-dobroto izrechenie.",

						  "Az sum v kraya, no sum mnogo priyatno izrechenie.",

						  "Nishto, che sum posledno, az sum nay-dulgoto izrechenie."};

	int n_ans = 0;

	int ans = 0;

	while(n_ans != 2)

	{

				show_sentns(sentns, MAX);

				printf("nntEnter a value between 1 and 10...n");

				scanf(" %d", &ans);

				--ans;

				switch(ans)

				{

					   case 0:  sacount(sentns[0]);

								n_ans++; 

								break;

					   case 1:  sacount(sentns[1]);

								n_ans++;

								break;

					   case 2:  sacount(sentns[2]);

								n_ans++;

								break;

					   case 3:  sacount(sentns[3]);

								n_ans++;

								break;

					   case 4:  sacount(sentns[4]); 

								n_ans++;

								break;

					   case 5:  sacount(sentns[5]);

								n_ans++;

								break;

					   case 6:  sacount(sentns[6]);

								n_ans++;

								break;

					   case 7:  sacount(sentns[7]);

								n_ans++;

								break;

					   case 8:  sacount(sentns[8]);

								n_ans++;

								break;

					   case 9:  sacount(sentns[9]);

								n_ans++; 

								break;

					   default: printf("aError! Fill correct vales!n");

				 }

	 }

	 compare_sentncs();

	

	 return 0;

}

0

#33
Потребителят е неактивен   ffffffffff 

  • Група: Потребители
  • Мнения: 56
  • Регистриран: 03-March 04
  • Репутация: 0
  • Пол:Мъж
  • Град:София
напишете програма на С++, която при въвеждане на произволни цели числа като стойности на променливите A и B, да извежда като стойност на променливата C резултата от целочисленото им деление

МОЛЯ ВИ ПОМОЩ ;(;(;(;(


--------------------
решение:
#include <iostream>

using namespace std;



int main(int argc, char **argv)

{

		int a, b, c;

		cout << "input A: ";

		cin >> a;

		cout << "input B: ";

		cin >> b;

		if(b != 0)

		{

				c = a / b;

				cout << a << "/" << b << "=" <<  c << endl;

		}

		else cout << "B = 0" << endl;

		return 0;

}

0

#34
Потребителят е неактивен   glizan 

  • Група: Потребители
  • Мнения: 538
  • Регистриран: 16-December 05
  • Репутация: 7
  • Пол:Мъж
  • Град:Бакърената
За едномерен масив направете програма, която сгъстява масива като елиминира елементите равни на нула (0) като всеки следващ заема мястото на елемента с нулева стойност.

C++ (Borland 4.5)

#include <iostream.h>

void main()

{ double A[100];

int i,p,n,N;

p=0;

cout<<"n="; cin>>n;

if(n<=0||n>100)cout<<"n e izvan intervala  (0; 100]";

else  {

for(i=0; i<n; i=i+1)

{  cout<<"A["<<i<<"]
="; cin>>A[i]; }

for(i=0; i<n; i=i+1)

{  if(A[i]==0)p=p+1;

N=i-p;

if(A[i]!=0)cout<<"		  A["<<N<<"]="<<A[
i]<<endl; } } }


Кратко обяснение на програмата:

В първия ред на програма виждаме следния ред код "#include <iostream.h>" . Въвеждайки този ред ние оказваме на компилатора, че ще използваме операции за вход и изход. С double и int дефинираме променливите (int – заема цели стойности).
С n означаване големината на масива (в началото). С p означаваме броя на нулите в масива, а с N големината на масива след като е сгъстен (т.е. n-p).
Първоначално за p задаваме стойност нула (p=0). Въвеждаме големината на масива (n).
Ако n е извън интервала (0, 100] излиза съобщение за грешка, а в противен случай с оператора за цъкaл for въвеждаме стойности за масива. Ако тази стойност е нула (0), p нараства е 1. По този начин преброяваме колко нули (0) има в масива.
Ако стойността е различна от нула (А[i]≠0) тя се отпечатва на екрана, а големината на масива се намалява с толкова с колкото нули има (т.е. той става с N елемента).

2.1 Подписите могат да съдържат до 5 реда (има ограничение от 255 символа) текст (малък или нормален шрифт) и/или една картинка. Размера на текста трябва да е между 9 и 12 (малък и нормален). Големината на картинката не трябва да е по-голяма от 60 Кб. Помислете за хората, които са с по-бавна Интернет връзка, или си плащат Интернета на трафик.
0

#35
Потребителят е неактивен   anatolk 

  • Група: Потребители
  • Мнения: 916
  • Регистриран: 02-April 05
  • Репутация: 1
  • Град:София

Цитат

Задача:
Иамате n цветни лентички с еднаква широчина, но с различен цвят. Ако
подредите лентичките една над друга, така че да са подравнени в единия
си край, колко цвята ще видите като гледате отгоре на тестето
лентички? Четете от клавиатурата n - броя лентички(0< n <=100) и след
това n числа - дължините на лентичките (цели сантиметри), в реда, по
който ги добавяте върху останалите.Няма лентичка по-дълга от 100 cm.
Пример
Вход:
4
50 10 30 25
Изход:
3
Пояснение:
Червената лентичка (дължина 10) не се вижда, когато се гледа отгоре.



#include <stdio.h>



#define MN 100

#define ML 100



int A[MN];

int I,N,T;



int main()

{

  do{ scanf("%d",&N);}

  while(N>MN);

  for(I=0;I<N;I++){

	do{ scanf("%d",&T);}

	while(T>ML);

	A[I]=T;}

  T=A[--I];

  while(I--){

	if(A[I]>T)

	  T=A[I];

	else N--;}

  printf("%dn",N);

  return 0;

}

0

#36
Потребителят е неактивен   nnnbnnn 

  • Група: Потребители
  • Мнения: 7
  • Регистриран: 04-February 07
  • Репутация: 0
Да се напише програма, която спами. :)


#include "iostream"



int main( )

{

	std::cout << "Spam!" << endl;



	return 0;

}

0

#37
Потребителят е неактивен   borgy 

  • Група: Потребители
  • Мнения: 4943
  • Регистриран: 24-June 02
  • Репутация: 0
  • Пол:Мъж
  • Град:София
  • Интереси:Само ЛЕВСКИ, оле !

nnnbnnn каза:

Да се напише програма, която спами. :)
...
Публикувано изображение
1. ПЪРВИ
...
...
...
16. последни

доскоро последни в Европа, сега вече последни и в България
0

#38
Потребителят е неактивен   nnnbnnn 

  • Група: Потребители
  • Мнения: 7
  • Регистриран: 04-February 07
  • Репутация: 0

borgy каза:

nnnbnnn каза:

Да се напише програма, която спами. :)
...
Публикувано изображение


Няма нужда от аплодисменти, благодаря. :)
0

#39
Потребителят е неактивен   keeperofthegrove 

  • Група: Потребители
  • Мнения: 710
  • Регистриран: 23-October 06
  • Репутация: 1
  • Пол:Мъж
  • Град:Тутракан
  • Интереси:������������
7 реални стойности,които представляват дневните температури(един ред за седмица),като за всяка седмица да се изчисли средната температура; за месеца най-високата, и най-ниската.


#include <stdio.h>

#define MAX_DAYS 7

#define MAX_WEEKS 4



int main(void)

{

	 float month[MAX_WEEKS][MAX_DAYS + 1];

	 int i, j;

	 float max, min;

	 max = min = 0.0;

	

	 for(i = 0; i < MAX_WEEKS; i++)

	 {

		   month[i][MAX_DAYS] = 0;

		   printf("Enter the values for %d week: n", (i + 1));

		   for(j = 0; j < MAX_DAYS; j++)

		   {

				

				 scanf(" %f", &month[i][j]);

				 month[i][MAX_DAYS] += month[i][j];

		   }

		   printf("Sum: %fn", month[i][MAX_DAYS]);

		   month[i][MAX_DAYS] /= MAX_DAYS;

		   printf("Week: %d average is: %fn", i + 1, month[i][MAX_DAYS]);

	 }

	 max = min = month[0][MAX_DAYS];

	 for(i = 1; i < MAX_WEEKS; i++)

	 {

		   if(month[i][MAX_DAYS] > max)

		   {

					max = month[i][MAX_DAYS];

		   }else

				{

					if(month[i][MAX_DAYS] < min)

					{  

							min = month[i][MAX_DAYS];

					}

				}

	 }

	 printf("Max: %.2f, Min: %.2fn", max, min);

	 

	 return 0;

}

http://forums.data.b...owtopic=1548097
0

#40
Потребителят е неактивен   keeperofthegrove 

  • Група: Потребители
  • Мнения: 710
  • Регистриран: 23-October 06
  • Репутация: 1
  • Пол:Мъж
  • Град:Тутракан
  • Интереси:������������

WesTer каза:

Моля спешно да ми помогнете със следната задачка зa Borland C++. Мисля че решението е много простичко, но аз ама никак не съм наясно с нещата

Да се състави алгоритъм за намиране на разликата между най-голямата и най-малката стойност в отделните редове на двумерен масив "B" с "M" реда и "N" стълба. + блок схема

Трябва да се реши с <stdio.h>

Предварително благодаря


#include <iostream>

using namespace std;

const int M = 3, N = 5;

int main()

{

	int B[M][N] = { {10, 20, 2, -1, 2},

					{1 ,  2, 0, -2, 3},

					{20, 21, 1,  2, 5}

				   };

	int min, max;

	min = max = 0;



	for(int i = 0; i < M; i++)

	{

	   min = max = B[i][0];

	   for(int j = 0; j < N; j++)

	   {

			if(min > B[i][j]) min = B[i][j];

			if(max < B[i][j]) max = B[i][j];

	   }

	   cout << "Max: " << max << ", Min: " << min << endl;

	   cout << "Difference: " << (max - min) << endl;

	}

	

	return 0;

}

0

Споделете тази тема чрез:


  • (16 Страници) +
  • 1
  • 2
  • 3
  • 4
  • Последна »
  • Вие не можете да започнете нова тема
  • Вие не може да отговаряте на тази тема

1 потребители четат тази тема
0 регистрирани потребители, 1 гости и 0 анонимни потребители


Data.BG e форум за дискусии. Data.BG не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Data.BG.

Close  Member Login