Search the Community
Showing results for tags 'c++'.
-
Dúvida a tentar descobrir a posição do máx e do mín de um array O programa em si funciona, mas não corretamente. Ele dá-me a posição dos dois maiores e a posição dos dois menores; Gostaria de saber qual é o erro pois máx neste caso só há 1! #include<stdio.h> int const DIM=5; void lerArray (int[DIM]); int posicaoMaximo (int[DIM]); int posicaoMinimo (int[DIM]); int main() { int vet[5]={12,23,2,87,6}; lerArray(vet); posicaoMaximo(vet); posicaoMinimo(vet); } void lerArray (int vet[5]){ int i; for(i=0;i<5;i++){ printf("%i ",vet[i]); } } int posicaoMaximo (int vet[5]){ int i, pm=vet[0]; for(i=0;i<5;i++){ if(pm<vet[i]){ printf("Posicao do maximo:%d\n",i); } } return i; } int posicaoMinimo (int vet[5]){ int i, pm=vet[0]; for(i=0;i<5;i++){ if(pm>vet[i]){ printf("Posicao do minimo:%d\n",i); } } return i; }
-
Boa noite, Estou usando Visual Studio 2019 e estou com varios problemas.. Estou fazendo um teste de bibliotecas giflib com addon https://github.com/grimfang4/SDL_gifwrap, para SDL2. para correr gifs animados em SDL2. usando o exemplo base do gifwrap o programa corre e compila, mas tendo logo a partida 2 problemas, tenho que usar main.c (C, quando quero usar cpp) e include tem que ser #include "SDL_gifwrap/SDL_gifwrap.c", onde deveria ser .h, mas se colocar .h o programa simplesmente nao compila. O erro aqui apresentado com .h é o mesmo de quando tento compilar com main.cpp. LNK2019. main.c/cpp neste caso so roda se for c. //BEGIN PROGRAM HEAD //BEGIN INCLUDES //local headers //#include "helper.h" #include <gif_lib.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include "SDL_gifwrap/SDL_gifwrap.h" //should be SDL_gifwrap.c #include "sdl.h" #include <SDL_image.h> //END INCLUDES //BEGIN GLOBALS SDL_Window* Window; SDL_Renderer* Renderer; //SDL_Window* Window = NULL; //SDL_Renderer* Renderer = NULL; SDL_Texture* texture_; SDL_Rect gif; GIF_Image* gifA = NULL; Uint16 i = 0; int br; int bg; int bb; int logging = 0; //END GLOBALS //BEGIN FUNCTION PROTOTYPES void draw_current_gif_frame(void); //END FUNCTION PROTOTYPES //BEGIN MAIN FUNCTION int main(int argc, char* argv[]) { (void)argc; (void)argv; SDL_Init(SDL_INIT_EVERYTHING); //TTF_Init(); Window = SDL_CreateWindow("SDL2 gif stress", 50, 50, 350, 350, 0); //Renderer = SDL_CreateRenderer(Window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC); Renderer = SDL_CreateRenderer(Window, -1, SDL_RENDERER_ACCELERATED); SDL_SetRenderDrawColor(Renderer, 255, 0, 0, 255); SDL_RenderClear(Renderer); //BEGIN GIF int error; // GifFileType * gif2 = DGifOpenFileName("c-exec.gif", &error); char gifname[50]; if (argc < 2) sprintf(gifname, "33.gif"); else sprintf(gifname, argv[1]); GifFileType* gif2 = DGifOpenFileName(gifname, &error); if (DGifSlurp(gif2) == GIF_ERROR) { DGifCloseFile(gif2, &error); } // // SDL_Log("%d",gif2->SColorMap->Colors->Red); br = gif2->SColorMap->Colors->Red; // SDL_Log("%d",gif2->SColorMap->Colors->Green); bg = gif2->SColorMap->Colors->Green; // SDL_Log("%d",gif2->SColorMap->Colors->Blue); bb = gif2->SColorMap->Colors->Blue; if (gifA = GIF_LoadImage(gifname)) i = 0; SDL_Event event; int running = 1; int pause = 0; //BEGIN TIMING int delay; unsigned int startTime, currentTime, frameTime = 0; startTime = SDL_GetTicks(); delay = gifA->frames[i]->delay; //END TIMING //END INIT //BEGIN MAIN LOOP while (running) { //BEGIN EVENT LOOP while (SDL_PollEvent(&event)) { if (event.type == SDL_QUIT) { running = 0; } else { SDL_SetWindowTitle(Window, "SDL 2 - Animated GIF"); } } //END EVENT LOOP currentTime = SDL_GetTicks(); frameTime = currentTime - startTime; startTime = currentTime; if (delay <= 0) { i++; if (i > gifA->num_frames - 1) i = 0; delay = gifA->frames[i]->delay; } delay -= frameTime; /*}*/ //BEGIN RENDERING draw_current_gif_frame(); //END RENDERING SDL_Delay(33); } //END MAIN LOOP //BEGIN CLEAN UP if (texture_ != NULL) SDL_DestroyTexture(texture_); if (gifA != NULL) GIF_FreeImage(gifA); SDL_DestroyRenderer(Renderer); SDL_DestroyWindow(Window); //TTF_Quit(); SDL_Quit(); //exit_(); //END CLEAN UP return EXIT_SUCCESS; } //END MAIN FUNCTION void draw_current_gif_frame() { gif.x = (gifA->frames[i]->left_offset);// *current_scale) + gif_canvas.dst.x; gif.y = (gifA->frames[i]->top_offset);// * current_scale) + gif_canvas.dst.y; gif.w = (gifA->frames[i]->width);// * current_scale); gif.h = (gifA->frames[i]->height);// * current_scale); // SDL_SetRenderDrawColor(Renderer, br, bg, bb, 255); SDL_RenderFillRect(Renderer, &gif); //SDL_RenderClear(Renderer); texture_ = SDL_CreateTextureFromSurface(Renderer, gifA->frames[i]->surface); SDL_RenderCopy(Renderer, texture_, NULL, &gif); SDL_RenderPresent(Renderer); } agradeco a ajuda, pois estou mentalmente bloqueado, possivelmente por algo simples. P.S ja cheguei a add extern"C" no include mas tambem não ajudou. Obrigado
-
Boas queria construir um robô seguidor de linha para um projeto mas apenas tenho um sensor, face a este problema será que o poderia programar para apenas seguir uma linha reta ligando assim o único sensor aos dois motores? Se possível ficaria agradecido se pudessem disponibilizar o código para a programação
-
Neste seguinte programa preciso de ajuda para trocar os números de char para int. O código é o seguinte: #include <stdio.h> #include <locale.h> #include <stdlib.h> #include <string.h> #include <conio.h> #include <time.h> int i; char resposta[6],adivinha[6]; FILE *fp; void menu() { printf("Bem-vindo ao jogo de adivinhar um número com 6 digitos!\n"); } void gerador()//numero aleatorio { srand(time(0)); for(i=0;i<6;i++) { resposta[i]=rand()%10+48; } } void tentativa(int y) { printf("Esta é a %d/7 tentativa\n\n",y); for(i=0;i<6;i++) { do { printf("Advinha o número! %d:",i+1); scanf("%c",&adivinha[i]); getchar(); if((adivinha[i]=='1')||(adivinha[i]=='2')||(adivinha[i]=='3')||(adivinha[i]=='4')||(adivinha[i]=='5')||(adivinha[i]=='6')||(adivinha[i]=='7')||(adivinha[i]=='8')||(adivinha[i]=='9')||(adivinha[i]=='0')) { printf(""); }else { printf("Número inválido\nClica Enter e tenta outra vez!\n"); } }while((adivinha[i]!='1')&&(adivinha[i]!='2')&&(adivinha[i]!='3')&&(adivinha[i]!='4')&&(adivinha[i]!='5')&&(adivinha[i]!='6')&&(adivinha[i]!='7')&&(adivinha[i]!='8')&&(adivinha[i]!='9')&&(adivinha[i]!='0')); } } int check() { int x; for(i=0;i<6;i++) { if(resposta[i]==adivinha[i]) { printf("%c",adivinha[i]); x++; } else printf("-"); } printf("\n"); if(x==6) return 1; else return 0; } int main() { setlocale(LC_ALL,"Portuguese"); int bin=0,y,momento; char recorde[100],nome[100]; system("color A"); menu(); gerador(); fp = fopen("Recorde.txt","r"); if(fp!=NULL) { fgets(recorde,100,fp); fclose(fp); printf("O recorde atual é %s\n",recorde); } fp=fopen("Recorde.txt","r"); if(fp!=NULL) fscanf(fp,"%d",&momento); else momento=10000; for(y=1;y<=7;y++) { tentativa(y); bin=check(); if(bin==1) { printf("Parabens adivinhaste em %d tentativas\n",y); if(y<momento) { printf("Bateste o record, escreve o teu nome para o registo!\n"); gets(nome); fp = fopen("Recorde.txt","w"); fprintf(fp,"%d - %s",y,nome); fclose(fp); } break; } } printf("Resposta = %c%c%c%c%c%c",resposta[0],resposta[1],resposta[2],resposta[3],resposta[4],resposta[5]); } Fico agradecido por qualquer resposta! ❤️ Quanto mais rápido agradeço!
-
Malta preciso de ajuda eu quero fazer o jogo 3 em linha em c++ e não consigo podem me mostrar como é que fazem eu ficaria muito agradecido. ps: sou iniciante
-
Estou com uma duvida, eu tenho este menu. Na ultima case (case 6), o menu tem de fechar, mas não sei o que fazer, podem me ajudar. Estou a trabalhar em código de C++. //Projeto UFCD - programação #include <iostream> #include <string> #include <fstream> using namespace std; //declaração de variaveis int opcao, numero1, numero2, ntrabalhadores; ofstream ficheiro ("GESTAOSALARIAL.txt"); struct trabalhadores { string nome; int nhoras; int escalao; }; //ARRAY QUE GUARDA NOMES DOS TRABALHADORES trabalhadores conjtrabalhadores[1000]; //FUNCAO SALARIO float salario (int escalao, float nhoras) { float res; if (escalao == 1){ res= 150 * nhoras; } else if (escalao == 2){ res= 200 * nhoras; } else if (escalao == 3){ res= 250 * nhoras; } else if (escalao == 4){ res= 300 * nhoras; } else { cout<<"Escalao Invalido"<<endl; } return res; } int main () { menu: cout<<system("cls"); cout<<" \t\t_________________________________"<<endl; cout<<" \t\t| |"<<endl; cout<<" \t\t| GESTAO SALARIAL |"<<endl; cout<<" \t\t|_______________________________|"<<endl; cout<<" \t\t| |"<<endl; cout<<" \t\t| 1- Inserir trabalhador |"<<endl; cout<<" \t\t|_______________________________|"<<endl; cout<<" \t\t| |"<<endl; cout<<" \t\t| 2- Lista de trabalhadores |"<<endl; cout<<" \t\t|_______________________________|"<<endl; cout<<" \t\t| |"<<endl; cout<<" \t\t| 3- Escaloes |"<<endl; cout<<" \t\t|_______________________________|"<<endl; cout<<" \t\t| |"<<endl; cout<<" \t\t| 4- Salarios |"<<endl; cout<<" \t\t|_______________________________|"<<endl; cout<<" \t\t| |"<<endl; cout<<" \t\t| 5- Gravar |"<<endl; cout<<" \t\t|_______________________________|"<<endl; cout<<" \t\t| |"<<endl; cout<<" \t\t| 6- Sair |"<<endl; cout<<" \t\t|_______________________________|"<<endl; cout<<" \t\t Selecione a opcao pretendida: "; cin>>opcao; //EXITs switch(opcao) { case 1: cout<<"\n\t\t\t Quantos trabalhadores pretende inserir? "; cin>>ntrabalhadores; for (int i=0; i<ntrabalhadores;i++) { cout<<"\n\t\t\t Introduza o nome do "<<i+1<< " trabalhador: "; cin>>conjtrabalhadores[i].nome; cout<<"\t\t\t Introduza o numero de horas do "<<i+1<< " trabalhador: "; cin>>conjtrabalhadores[i].nhoras; cout<<"\t\t\t Introduza o escalao do "<<i+1<< " trabalhador: "; cin>>conjtrabalhadores[i].escalao; cout<<endl; } break; case 2: cout<<" \n\t\t\t *** LISTAGEM DOS TRABALHADORES *** "<<endl; for (int i=0; i<ntrabalhadores;i++) { cout<<"\n\t\t\t Nome do "<<i+1<< " trabalhador: "<<conjtrabalhadores[i].nome<<endl; cout<<"\t\t\t Numero de horas do "<<i+1<< " trabalhador: "<<conjtrabalhadores[i].nhoras<<endl; cout<<"\t\t\t Escalao do "<<i+1<< " trabalhador: "<<conjtrabalhadores[i].escalao<<endl; } break; case 3: system("cls"); cout<<"\t\t\t______________________________"<<endl; cout<<"\t\t\t| | |"<<endl; cout<<"\t\t\t| ESCALAO | MONTANTE GANHO |"<<endl; cout<<"\t\t\t|___________|________________|"<<endl; cout<<"\t\t\t| | |"<<endl; cout<<"\t\t\t| 1 | 150/H |"<<endl; cout<<"\t\t\t|___________|________________|"<<endl; cout<<"\t\t\t| | |"<<endl; cout<<"\t\t\t| 2 | 200/H |"<<endl; cout<<"\t\t\t|___________|________________|"<<endl; cout<<"\t\t\t| | |"<<endl; cout<<"\t\t\t| 3 | 250/H |"<<endl; cout<<"\t\t\t|___________|________________|"<<endl; cout<<"\t\t\t| | |"<<endl; cout<<"\t\t\t| 4 | 300/H |"<<endl; cout<<"\t\t\t|___________|________________|"<<endl<<endl; break; case 4: { //cin>> ntrabalhadores; for (int i=0; i<ntrabalhadores;i++) { //SALARIO DO PRIMEIRO TRABALHADOR cout<<"\t O "<<conjtrabalhadores[i].nome<<" tem o escalao: "<<conjtrabalhadores[i].escalao<<endl; cout<<"\t O "<<conjtrabalhadores[i].nome<<" trabalhou: "<<conjtrabalhadores[i].nhoras<<endl; cout<<"\t --> O salario do "<<conjtrabalhadores[i].nome<<" e: "<<salario(conjtrabalhadores[i].escalao, conjtrabalhadores[i].nhoras)<<" euros"<<endl<<endl; } } break; case 5: if (ficheiro.is_open()) { ficheiro<<" ***** PROGRAMA GESTAO SALARIAL *****"<<endl; for (int i=0; i<ntrabalhadores;i++) { ficheiro<<"\t\t\t O"<<i+1<<conjtrabalhadores[i].nome<<endl; ficheiro<<endl; cout<<"\t\t\t O salario do "<<conjtrabalhadores[i].nome<<"e: "<<salario(conjtrabalhadores[i].escalao, conjtrabalhadores[i].nhoras)<< " euros"<<endl; } ficheiro.close(); } else { cout<<"NAO E PERMITIDO GRAVAR"<<endl; cout<<"\t\t\t A Informação foi gravada com sucesso!"<<endl; } break; case 6: { system ("ext"); } default: cout<<"\n\t\t\t**OPCAO INVALIDA!!!**"<<endl<<endl; break; } system("pause"); goto menu; return 0; cout<<endl<<endl<<endl<<endl; }
-
Crie uma função em C que permita percorrer uma matriz quadrada bidimensional em diagonal. Seu programa não deve impor limitações sobre o tamanho da matriz. Não use a notação de colchetes. Use ponteiros e alocação dinâmica do tamanho da matriz. Apresente um programa de teste e exemplos (quanto mais melhor), mostrando que a sua implementação funciona. estou tendo dificuldades para formar essa questão, não vejo por onde começar e alguns exemplos que busquei não me fez tanto sentido, alguém me ajuda nessa questão!
-
Implemente um programa no qual o usuario informa, através da linha de comando, uma frase e o programa busca todas repetições da mesma palavra. Ao final, o programa imprime o numero de vezes que cada palavra aparece no frase. Para isso, só será permitido utilizar as funções strcpy(), strlen(), e fgets() de String.h. Realize a implementação própria de todas outras funções que precisar para resolver o problema. estou tendo dificuldades para achar as palavras iguais da frase e dizer quantas são, alguém me ajuda. só estou conseguindo fazer contar o numero de caracteres da frase, mais as palavras iguais não consigo achar um jeito certo, alguém pode me ajudar com um exemplo!
-
Olá pessoal. Estou a desenvolver uma biblioteca em C++ e, neste momento, dar-me-ia imenso jeito ter uma forma de aceder aos métodos de uma instância de outra classe. Numa classe (vamos chamá-la de FooMgr) tenho um map que me permite aceder a instâncias de outra classe (vamos assumir que se chama foo) através do seu nome. map<string, Foo> foolist; FooMgr é, portanto, um gestor de instâncias de Foo onde posso dar um nome arbitrário a cada uma dessas instâncias. De momento preciso de fazer algo deste género para aceder aos métodos de cada instância: FooMgr foo(); // etc... foo.getInstance("batatas").coisas(); foo.getInstance("batatas").cenas(); foo.getInstance("batatas").factos(); A minha ideia é definir a instância actual e, a partir daí, aceder directamente aos seus métodos sem precisar de recorrer a este "proxy" (getInstance) FooMgr foo(); // etc... foo.setCurrent("batatas"); foo.coisas(); foo.cenas(); foo.factos(); Sei que existe forma de fazer isto em Delphi, mas desconheço se há algum mecanismo para tal em C++. As minhas pesquisas deram num beco sem saída (talvez não esteja a usar as keywords certas nas pesquisas, idk). Conhecem alguma forma de fazer isto em C++, ou de o simular de uma forma um tanto-quanto elegante? Cumprimentos.
-
namespace ClassesDerivadas { //****************************************************** //* Classe1 "ProdutoEletrodomestico" - Classe1 Derivada //****************************************************** class ProdutoBiologico: public Classes::ClassePrincipal::Produto { // 1. Dados int caloria; int eficacia; string classe1; public: // 2. Métodos // 2.1 Métodos Construtores ProdutoBiologico():Produto() {this->caloria = 0; this->eficacia = 0; this->classe1 = ""; cout<<"Produto Biológico criado!";} ProdutoBiologico(int cal, string d): Produto(cal,d) {caloria = 0; eficacia = 0; classe1 = ""; cout<<"Produto Biológico criado!";} ProdutoBiologico(int codP, string d, int numC): Produto(codP,d, numC) {caloria = 0; eficacia = 0; classe1 =""; cout<<"Produto Biológico criado!";} // 2.2 Métodos destrutores ~ProdutoBiologico() { cout<<"Eliminação de um objeto "<<"'Produto Biológico': "; cout<<getDesignacao()<<"."; cout<<endl; } // 2.3 Métodos "setters" void setCaloria (int cal) {this->caloria = cal;} void setEficacia (int e) {this->eficacia = e;} void setClasse1(string c3) {this->classe1 = c3;} // 2.4 Métodos "getters" int getCaloria () {return caloria;} int getEficacia () {return eficacia;} string getClasse1() {return classe1;} // 2.5 Métodos de leitura void leCaloria() { int num = 0; cout<<"Insira o valor das "<<"calorias: "; cin>>num; setCaloria(num); fflush(stdin); } void leEficacia() { int num = 0; cout<<"Insira o valor da "<<"eficacia: "; cin>>num; setEficacia(num); fflush(stdin); } void leClasse1() { const int MAXNOME = 50; char texto[MAXNOME]; for(int cLetra= 0; cLetra < MAXNOME; cLetra++) texto[cLetra]= '\0'; cout<<"Insira o valor da classe1: "; cin.getline(texto, MAXNOME,'\n'); setClasse1(texto); fflush(stdin); } // 2.6 Métodos de Escrita void mostraCaloria() { cout<<"Calorias: "<<getCaloria()<<" do produto."; cout<<endl; } void mostraEficacia() { cout<<"Eficacia: "<<getEficacia ()<<" meses."<<endl;} void mostraClasse() { cout<<"Classe: "<<getClasse1()<< "."<<endl; } void mostraTudoProdutoEletrodomestico() { cout<<"\nApresentação dos dados "; cout<<"de um produto: "<<endl; mostraTudoProduto(); mostraCaloria(); mostraEficacia(); mostraClasse1(); } }; // Fim da classe1 "Produto Biológico" } // Fim do espaço de nomes "ClassesDerivadas". } // Fim do espaço de nomes "Classes". //************************************************ //* Função principal //************************************************ int main() { setlocale(LC_ALL, "Portuguese"); Classes::ClassesDerivadas::ProdutoBiologico produto; produto.leTudoProdutoBiologico(); produto.mostraTudoProdutoBiologico(); return 0; } // Fim da função "main()".
-
Boas, Estou com alguma dificuldade em perceber o que está errado no código que gerei, pois nunca me dá com exatidão qual a pessoa que comeu menos panquecas, a que comeu mais dá certo.Obrigado (Estou a usar o Visual Studio 2019) int pancakes[10]; int index; int index2; int max = 1; int min = 1; int max_pancakes = 1; int min_pancakes = 1; for (index = 1; index < 10; index++) { std::cout << "INSERT THE NUMBER OF PANCAKES THAT THE PERSON" << index << "EAT" << std::endl; std::cin >> pancakes[index]; } for (index2 = 1; index2 < 10; index2++) { for (index = 1; index < 10; index++) { if (pancakes[index2] < pancakes[index]) { max = pancakes[index]; max_pancakes = index; } else if (pancakes[index] < pancakes[index2]) { min = pancakes[index]; min_pancakes = index; } } } std::cout << " THE PERSON WHO EAT MORE PANCAKES IS " << max_pancakes << std::endl; std::cout << " THE PERSON WHO EAT LESS PANCAKES IS " << min_pancakes << std::endl;
-
Boas pessoal a minha questão é a do titulo, é a única coisa que me falta. Alguém me conseguia ajudar? Obrigado #include <iostream> #include <stdlib.h> const int max = 6; int main() { int arr [max], aux; printf("escreva %d valores\n", max); for (int i = 0 ; i < max; i++) { scanf("%d", &arr[i]); } for(int i = 0; i < max; i++) for (int j=0; j<max -1-i; j++) if (arr[j]> arr[j+1]) { aux = arr[j]; arr[j]= arr[j+1]; arr[j+1]=aux; } printf("Os valores ordenados sao\n"); //escrever o array ordenado abaixo }
-
Escreva um programa para ler 10 palavras. Para cada palavra lida escrever a quantidade de caracteres existentes na palavra. Considere que cada palavra possui no máximo 30 caracteres. estou com bastante dificuldade em resolver essa questão a única coisa que consegui fazer foi contar quantas palavras existem mas não quantos caracteres tem na palavra
-
Boa tarde, estou a fazer um trabalho para a universidade que consiste em fazer o jogo dos 4 em linha e estou com dificuldades em saber como posso determinar quem é que ganha o jogo e como fazer , na linguagem C++. Obrigado pela atenção
-
Olá boa tartde eu estou a fazer um jogo para entregar para a cadeira de lab mas eu fiquei preso com este erro se alguem poder ajudar eu agredecia . Erros: Build started... 1>------ Build started: Project: Atirar, Configuration: Debug Win32 ------ 1>Atirar.cpp 1>Tabuleiro.cpp 1>Generating Code... 1>Tabuleiro.obj : error LNK2005: "void __cdecl gotoxy(int,int)" (?gotoxy@@YAXHH@Z) already defined in Atirar.obj 1>Tabuleiro.obj : error LNK2005: "void __cdecl printAscii(int,int,int)" (?printAscii@@YAXHHH@Z) already defined in Atirar.obj 1>Tabuleiro.obj : error LNK2005: "void __cdecl printfAt(int,int,char * const)" (?printfAt@@YAXHHQAD@Z) already defined in Atirar.obj 1>Tabuleiro.obj : error LNK2005: "void __cdecl resetColor(void)" (?resetColor@@YAXXZ) already defined in Atirar.obj 1>Tabuleiro.obj : error LNK2005: "void __cdecl setBackColor(int)" (?setBackColor@@YAXH@Z) already defined in Atirar.obj 1>Tabuleiro.obj : error LNK2005: "void __cdecl setColor(int,int)" (?setColor@@YAXHH@Z) already defined in Atirar.obj 1>Tabuleiro.obj : error LNK2005: "void __cdecl setForeColor(int)" (?setForeColor@@YAXH@Z) already defined in Atirar.obj 1>Tabuleiro.obj : error LNK2005: "void __cdecl show90RectAt(int,int,int,int)" (?show90RectAt@@YAXHHHH@Z) already defined in Atirar.obj 1>Tabuleiro.obj : error LNK2005: "void __cdecl showCharAt(int,int,char)" (?showCharAt@@YAXHHD@Z) already defined in Atirar.obj 1>Tabuleiro.obj : error LNK2005: "void __cdecl showRectAt(int,int,int,int)" (?showRectAt@@YAXHHHH@Z) already defined in Atirar.obj 1>Tabuleiro.obj : error LNK2005: "void __cdecl showVerticalWordAt(int,int,char * const,int)" (?showVerticalWordAt@@YAXHHQADH@Z) already defined in Atirar.obj 1>C:\Users\josep\source\repos\Atirar\Debug\Atirar.exe : fatal error LNK1169: one or more multiply defined symbols found 1>Done building project "Atirar.vcxproj" -- FAILED. ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== Atirar.cpp: #include <windows.h> #include <mmsystem.h> #include <iostream> #include <conio.h> #include <ctime> #include <iterator> #include <stdlib.h> #include <array> #include <algorithm> #include "Barco.h" #include "Tabuleiro.h" #include "lab.h" using namespace std; //variaveis globais int opcao=0; //--------------- void menu() { system("cls"); showRectAt(20, 1, 100, 25); gotoxy(25, 5); cout << " ____ _ _ _ _ _ _ "; gotoxy(25, 6); cout << "| \\ | | | | | | | \\ | | | |"; gotoxy(25, 7); cout << "| |_) | __ _ | |_ __ _ | | | |__ __ _ | \\| | __ _ __ __ __ _ | | "; gotoxy(25, 8); cout << "| _ < / _` | | __| / _` | | | | '_ \\ / _` | | . ` | / _` | \\ \\ / / / _` | | |"; gotoxy(25, 9); cout << "| |_) | | (_| | | |_ | (_| | | | | | | | | (_| | | |\\ | | (_| | \\ V / | (_| | | |"; gotoxy(25, 10); cout << "|____/ \\__,_| \\__| \\__,_| |_| |_| |_| \\__,_| |_| \\_| \\__,_| \\_/ \\__,_| |_|"; gotoxy(55, 15); cout << "_________________________________" << endl; gotoxy(60, 16); cout << " " << endl; gotoxy(66, 17); cout << "Jogar" << endl; gotoxy(66, 18); cout << "Carregar Jogo" << endl; gotoxy(66, 19); cout << "Regras" << endl; gotoxy(66, 20); cout << "Sair" << endl; gotoxy(50, 27); cout << "Desenvolvido Por Ricardo Inacio & Jose Alves 2021" << endl; if (opcao == 1) { gotoxy(66, 17); setColor(1, 15); printf("-> Jogar\n"); setColor(15, 0); } else if (opcao == 2) { gotoxy(66, 18); setColor(1, 15); printf("-> Carregar Jogo.\n"); setColor(15, 0); } else if (opcao == 3) { gotoxy(66, 19); setColor(1, 15); printf("-> Regras.\n"); setColor(15, 0); } else if (opcao == 4) { gotoxy(66, 20); setColor(1, 15); printf("-> Sair.\n"); setColor(15, 0); } } bool checkCords(int x, int y, int cords[4][2], int pos) { bool exists = false; for (int i = 0; i < 4; i++) { if (i == pos) { continue; } else { if (x == cords[i][0] && y == cords[i][1]) { exists = true; } } } return exists; } void DrawBoards(int scx[4], int scy[4]) { int i; int cli[4]; char cl[4]; int cn[4]; char letras[10] = { 'a','b','c','d','e','f','g','h','i','j' }; int savedc[4][2]; Tabuleiro t1, t2; for (i = 0; i < 4; i++) { t2.setCell(scx[i], scy[i], 'O'); } gotoxy(75, 0); t2.Draw(75, 5); gotoxy(0, 0); t1.Draw(27, 5); gotoxy(26, 3); cout << "JOGADOR"; gotoxy(110, 3); cout << "COMPUTADOR"; showRectAt(25, 4, 48, 24); showRectAt(73, 4, 48, 24); show90RectAt(25, 30, 10, 48); for (i = 0; i < 4; i++) { gotoxy(26, 31); cout << "Insira o " << i + 1 << " numero a colocar : " << endl; ; gotoxy(58, 31); do { cin >> cn[i]; if (cn[i] < 1 || cn[i] > 10) { gotoxy(26, 31); cout << " "; gotoxy(26, 31); cout << "Insira o " << i + 1 << " numero a colocar : " << endl; ; gotoxy(26, 33); cout << "O numero tem de estar contido entre 1 e 10!"; gotoxy(58, 31); } } while (cn[i] < 1 || cn[i] > 10); savedc[i][0] = cn[i]; gotoxy(26, 33); cout << " "; cout << endl; gotoxy(26, 31); cout << "Insira a " << i + 1 << " letra a colocar : " << endl; gotoxy(58, 31); do { cin >> cl[i]; if (!strchr(letras, cl[i])) { gotoxy(26, 31); cout << " "; gotoxy(26, 31); cout << "Insira a " << i + 1 << " letra a colocar : " << endl; ; gotoxy(26, 33); cout << "A letra tem de estar contida entre A e J!"; gotoxy(58, 31); } } while (!strchr(letras, cl[i])); cli[i] = int(cl[i] - 96); savedc[i][1] = cli[i]; gotoxy(26, 33); cout << " "; cout << endl; //verificar se ponto de cordenadas ja existe bool check = checkCords(cn[i], cli[i], savedc, i); while (check) { gotoxy(26, 31); cout << "Insira o " << i + 1 << " numero a colocar : " << endl; gotoxy(26, 33); cout << "Esse ponto de cordenadas ja existe!"; gotoxy(58, 31); do { cin >> cn[i]; if (cn[i] < 1 || cn[i] > 10) { gotoxy(26, 31); cout << " "; gotoxy(26, 31); cout << "Insira o " << i + 1 << " numero a colocar : " << endl; ; gotoxy(26, 33); cout << "O numero tem de estar contido entre 1 e 10!"; gotoxy(58, 31); } } while (cn[i] < 1 || cn[i] > 10); gotoxy(26, 33); cout << " "; cout << endl; gotoxy(26, 31); cout << "Insira a " << i + 1 << " letra a colocar : " << endl; gotoxy(58, 31); do { cin >> cl[i]; if (!strchr(letras, cl[i])) { gotoxy(26, 31); cout << " "; gotoxy(26, 31); cout << "Insira a " << i + 1 << " letra a colocar : " << endl; ; gotoxy(26, 33); cout << "A letra tem de estar contida entre A e J!"; gotoxy(58, 31); } } while (!strchr(letras, cl[i])); gotoxy(26, 33); cout << " "; cout << endl; check = checkCords(cn[i], cli[i], savedc, i); } savedc[i][0] = cn[i]; cli[i] = int(cl[i] - 96); savedc[i][1] = cli[i]; } for (i = 0; i < 4; i++) { t1.setCell(cn[i], int(cl[i]) - 96, 'O'); } system("cls"); gotoxy(75, 0); t2.Draw(75, 5); gotoxy(0, 0); t1.Draw(27, 5); gotoxy(26, 3); cout << "JOGADOR"; gotoxy(110, 3); cout << "COMPUTADOR"; showRectAt(25, 4, 48, 24); showRectAt(73, 4, 48, 24); // for(i=0; i<4; i++) { // cout << endl; // cout << "CORDS: (" << savedc[i][0] << "," << savedc[i][1] << "=" << cl[i] << ")" << endl; // t1.setCell(cn[i],int(cl[i])-96,'O'); // } } void gerarBarcos() { int x0, y0, dx, dy, i=0; x0 = 5; y0 = 4; dx = 10; dy = 10; Barco sub1, sub2, sub3, sub4; sub1.generateSub(1); sub2.generateSub(2); sub3.generateSub(3); sub4.generateSub(4); int sub_cordsx[4] = { sub1.get_subx(),sub2.get_subx(),sub3.get_subx(),sub4.get_subx() }; int sub_cordsy[4] = { sub1.get_suby(),sub2.get_suby(),sub3.get_suby(),sub4.get_suby() }; // cout << "DEBUG-----------------------" << endl; // for(i=0;i<4;i++){ // cout << "Cords: (" << sub_cordsx[i] << "," << char(64 + sub_cordsy[i]) << ")" << endl; // } // // cout << "----------------------------" << endl; DrawBoards(sub_cordsx, sub_cordsy); } void game() { system("cls"); //backgorund music //PlaySound(TEXT("bg.wav"), NULL, SND_FILENAME | SND_ASYNC); HWND hWnd = GetConsoleWindow(); ShowWindow(hWnd, SW_SHOWMAXIMIZED); gerarBarcos(); } int main() { int op; opcao = 1; do { menu(); op = _getch(); if (op == 80) { opcao++; } if (op == 72) { opcao--; } if (opcao > 4) { opcao = 1; } if (opcao < 1) { opcao = 4; } } while (op != 13); switch (opcao) { case 1: game(); break; case 2: //loadgame(); break; case 3: //rules(); break; case 4: exit(0); break; } //SimbolBoxList(); //cin.get(); return 0; } Tabuleiro.h: #pragma once #include "PontoNaval.h" class Tabuleiro { private: int dimx; int dimy; char M[10][10]; public: Tabuleiro(); Tabuleiro(int mdx, int mdy); virtual ~Tabuleiro(); void setDimX(int mdx) { dimx = mdx; } void setDimY(int mdy) { dimy = mdy; } int getDimX() { return dimx; } int getDimY() { return dimy; } void setCell(int l, int col, char c) { M[l - 1][col - 1] = c; } char getCell(int l, int col) { return M[l - 1][col - 1]; } void setCell(PontoNaval P, char c) { M[P.Getx() - 1][P.Getinty() - 1] = c; } char getCell(PontoNaval P) { return M[P.Getx() - 1][P.Getinty() - 1]; } void SimbolBoxList(); void DrawFirstLine(int x0, int dxcel); void DrawMiddleLine(int x0, int dxcel); void DrawDataLine(int line, int x0, int dxcel); void DrawLastLine(int x0, int dxcel); void Draw(int x0, int y0); }; tabuleiro.cpp: #include <iostream> #include "Tabuleiro.h" #include "lab.h" using namespace std; Tabuleiro::Tabuleiro() { int i, j; setDimX(10); setDimY(10); for (i = 1; i <= getDimY(); i++) { for (j = 1; j <= getDimX(); j++) { setCell(i, j, '.'); } } } Tabuleiro::Tabuleiro(int mdx, int mdy) { int i, j; setDimX(mdx); setDimY(mdy); for (i = 1; i < getDimY(); i++) { for (j = 1; j <= getDimX(); j++) { setCell(i, j, '.'); } } } Tabuleiro::~Tabuleiro() { } void Tabuleiro::SimbolBoxList() { cout << endl << endl; cout << "tabela ASCII e Extendida para as box"; cout << endl << endl; int tabela[] = { 185,186,187,188,200,201,202,203,204,206, 191,192,217,218,179,196,193,194,195,197,221,180, 45,47,60,62,88,91,92,93,94,95,238,240, 30,31,176,177,178,219,220,223,254, 59,123,124,125,143,205,189,190,207,241,242,245,249,46,58,61,127,174,175,145 }; int j = 0; for (int i = 0; i < 62; i++) { cout << tabela[i] << '\t' << (char)tabela[i] << '\t'; j++; if (j == 5) { cout << endl << endl; j = 0; } } } void Tabuleiro::DrawFirstLine(int x0, int dxcel) { int i, j; for (i = 0; i < x0 + 2; i++) { cout << " "; } cout << char(218); for (i = 0; i < getDimX(); i++) { for (j = 0; j < dxcel; j++) { cout << char(196); } if (i < getDimX() - 1) { cout << char(194); } } cout << char(191); } void Tabuleiro::DrawMiddleLine(int x0, int dxcel) { int i, j; for (i = 0; i < x0 + 2; i++) { cout << " "; } cout << char(195); for (i = 0; i < getDimX(); i++) { for (j = 0; j < dxcel; j++) { setBackColor(1); cout << char(196); resetColor(); } if (i < getDimX() - 1) { setBackColor(1); cout << char(197); resetColor(); } } cout << char(180); } void Tabuleiro::DrawLastLine(int x0, int dxcel) { int i, j; for (i = 0; i < x0 + 2; i++) { cout << " "; } cout << char(192); for (i = 0; i < getDimX(); i++) { for (j = 0; j < dxcel; j++) { cout << char(196); } if (i < getDimX() - 1) { cout << char(192); } } cout << char(217); } void Tabuleiro::DrawDataLine(int line, int x0, int dxcel) { int i; for (i = 0; i < x0; i++) { cout << " "; } if (line > 9) { cout << line; } else { cout << line << " "; } for (i = 1; i <= getDimX(); i++) { setBackColor(1); cout << char(179); cout << " " << getCell(line, i) << " "; resetColor(); } cout << char(179); } void Tabuleiro::Draw(int x0, int y0) { int i, l, dxtab, dytab, dxcel; // , dycel; // dycel = 1; dxcel = 3; dxtab = 4 * getDimX(); dytab = 1 * getDimY(); for (i = 0; i < y0; i++) { cout << endl; } for (i = 0; i < x0 + 2; i++) { cout << " "; } for (i = 0; i < getDimX(); i++) { cout << " " << char(65 + i) << " "; } cout << endl; //Draw First Line DrawFirstLine(x0, dxcel); cout << endl; DrawDataLine(1, x0, dxcel); cout << endl; //Draw Middle Lines for (l = 2; l <= getDimY(); l++) { DrawMiddleLine(x0, dxcel); cout << endl; DrawDataLine(l, x0, dxcel); cout << endl; } //Draw Last Line DrawLastLine(x0, dxcel); cout << endl << endl; }
-
Olá, comecei a estudar tratamento de exceções e tenho um pouco de dúvidas ainda. Alguém pode me ajudar? O código é o seguinte, tenho 4 opções, e é para captar um valor de cada tipo. Minha maior dificuldade é em como capturar o case 2. (...) int valor=0; cout << "Introduza um valor de 1 a 4:"; cin >> valor; try{ switch (valor){ case 1: throw 1; break; case 2: throw '2'; break; case 3: throw "3"; break; case 4: throw 4.0; break; default: throw 505; break; } } catch (int valor) { if (valor == 505) cout << "Valor introduzido errado" << endl; else cout << "Exeção de Inteiros\n"; } catch (const char* valor) { } catch (char valor) { } catch (double valor) { } }
-
Objetivo: Popular uma BD a partir de um .txt Pergunta: Que linguagem é mais simples/prática para o fazer? Descrição: Eu quero fazer um programa simples que me permita ler e escrever uma base de dados e ter uma interface gráfica que permita aplicar filtros à minha pesquisa. Estou a fazer esta pergunta porque sou novo na programação e queria saber a vossa opinião sobre como deveria fazer esta aplicação. As linguagens que sei sao: C C# C++ JAVASCRIPT PHP SQL Obrigado 😄
-
Olá. Quero colocar uma imagem de fundo num programa que estou a fazer, para isto criei uma textura. No entanto estou a ter os seguintes problemas: a textura está a aparecer com uns tons azulados, já tentei mudar os vértices que correspondem às cores mas só fica pior. E outro problema: não estou a conseguir com que ocupe a janela toda: caso coloque o 3ºvértice (z) a -1 fica a ocupar a janela toda mas fica à frente dos outros objetos, o que não é suposto, aliás a partir de -5 fica à frente dos mesmos, só -6 ou valores inferiores fazem com que não se sobreponha em relação aos objetos (tornando a imagem mais pequena). float vertices[] = { -1.0f, -1.0f, -6.0f, 0.0f, 0.0f, 0.00f, 0.0f, 1.0f, 0.0f, 1.0f, -1.0f, -6.0f, 1.0f, 0.0f, 0.00f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, -6.0f, 1.0f, 1.0f, 0.00f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, -6.0f, 1.0f, 1.0f, 0.00f, 0.0f, 1.0f, 0.0f, -1.0f, 1.0f, -6.0f, 0.0f, 1.0f, 0.00f, 0.0f, 1.0f, 0.0f, -1.0f, -1.0f, -6.0f, 0.0f, 0.0f, 0.00f, 0.0f, 1.0f, 0.0f}; Estive a pesquisar sobre a transparência duma textura, e supostamente teria que usar a função que já está declarada no código: glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); No while do main: glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, texture1); ourShader.use(); glm::mat4 model = glm::mat4(1.0f); glm::mat4 view = glm::mat4(1.0f); glm::mat4 projection = glm::mat4(1.0f); projection = glm::perspective(glm::radians(45.0f), (float) SCR_WIDTH / (float) SCR_HEIGHT, 0.1f, 100.0f); unsigned int modelLoc = glGetUniformLocation(ourShader.ID, "model"); unsigned int viewLoc = glGetUniformLocation(ourShader.ID, "view"); glUniformMatrix4fv(modelLoc, 1, GL_FALSE, glm::value_ptr(model)); glUniformMatrix4fv(viewLoc, 1, GL_FALSE, &view[0][0]); ourShader.setMat4("projection", projection); glBindVertexArray(VAO); glDrawArrays(GL_TRIANGLES, 0, 6); Finalmente para se ter uma ideia do que está a acontecer: imagem que não consigo pôr aqui
-
Olá, Estou com o seguinte problema: num programa do Visual Studio em que uso c++, tenho algumas figuras que constituem uma casa como o telhado, a porta, a janela. Sendo que faço cada um deste elementos deslocar-se para um sítio, como está no código seguinte (aqui está o exemplo da porta, o da janela terá uma deslocação para um sítio diferente, já o telhado e as paredes ficam no mesmo sítio) que funciona bem: glm::mat4 mvp = glm::ortho(-40.0f, 40.0f, -40.0f, 40.0f); unsigned int matrix = glGetUniformLocation(programID, "mvp"); glUniformMatrix4fv(matrix, 1, GL_FALSE, &mvp[0][0]); glm::mat4 trans; trans = glm::translate(glm::mat4(1.0), glm::vec3(delta, delta, 0.0f)); //direção da deslocação (se puser -delta vai na direção contrária unsigned int m = glGetUniformLocation(programID, "trans"); glUniformMatrix4fv(m, 1, GL_FALSE, &trans[0][0]); Acontece que gostava que cada elemento que se desloca também rodasse sobre si próprio, ou seja fizesse uma rotação, o código que pus a seguir ao de cima não está a ter efeito, e não estou a conseguir resolver o assunto: glm:mat4 rot = glm::mat4(1.0f); rot = glm::rotate(rot, glm::radians(0.0f), glm::vec3(0.0f, 0.0f, 1.0f)); GLint r = glGetUniformLocation(programID, "rot"); glUniformMatrix4fv(r, 1, GL_FALSE, &rot[0][0]); Será que me podiam ajudar?
-
Olá boa noite, Estou a desenvolver um trabalho sobre uma maquina de auto atendimento, que deve de aparecer um menu e depois o utilizador escolhe o menu que quiser e deverá de aparecer o valor com o respetivo troco ou não. E eu estou com duvidas como fazer para que se possa adicionar mais um produto depois de se já ter escolhido o primeiro menu. Nesta parte foi a minha tentativa de fazer algo: case 1: printf("Escolheu o menu 'Frango sem bebida e com acompanhamento'.\n"); printf("Quer adicionar mais algum produto? (S/N)\n"); scanf("%s", &letra); switch(letra){ case 'N': printf("\nTotal: 10,89 euros \nProceda ao pagamento...\n"); scanf("%f", &dinheiro); while(dinheiro<PrecoP1){ dinheiro_falta = PrecoP1 - dinheiro; printf("\nDinheiro insuficiente, falta(m) %.2f euros\n", dinheiro_falta); scanf("%f", &falta); dinheiro = dinheiro + falta; } troco = dinheiro - PrecoP1; printf("\nRetire o seu troco...\n%.2f euros", troco); printf("\n\nAguarde a confeção do seu pedido e depois dirija-se ao balcão para o levantar, seremos rápidos, OBRIGADO!\n\n"); case 'S': printf("Insira o numero do outro produto que quer adicionar: \n"); scanf("%d", &novo_produto); } break; e este é o meu trabalho inteiro: #include<stdio.h> #include<locale.h> void escreveLinha(){ printf("\n**************************"); } void escreveTraco(){ printf("\n -------------------------------------------------------------------------------------------"); } void escreveColuna(){ printf("\t|\t|\t|\t|\t|\t"); } int main() { setlocale(LC_ALL,"Portuguese"); char letra; int menu; float troco, dinheiro, dinheiro_falta, falta, PrecoP1 = 10.89, PrecoP2 = 13.29, PrecoP3 = 15.00, PrecoP4 = 16.99, PrecoP5 = 7.50, PrecoP6 = 8.50, PrecoP7 = 3.00, PrecoP8 = 4.00, PrecoP9 = 3.50; escreveLinha(); printf("|SEJA BEM-VINDO A CHURRASQUEIRA CAMOMILA|**************************\n"); escreveTraco(); printf("\n|\t\t\t\t\t\t\t\t\t\t\t |\n| *Menu*\t *Conteúdo*\t\t\t\t\t\t *Preço*\t |\n"); printf("| 1 \t\t Frango sem bebida e com acompanhamento \t\t 10,89 euros\t |\n"); printf("| 2 \t\t Frango com bebida e acompanhamento \t\t\t 13,29 euros\t |\n"); printf("| 3 \t\t Frango com bebida, acompanhamento e sobremesa \t 15,00 euros\t |\n"); printf("| 4 \t\t Prato do dia com bebida, acompanhamento e sobremesa \t 16,99 euros\t |\n"); printf("|\t\t\t\t\t\t\t\t\t\t\t |\n"); printf("| *Unidade*\t *Conteúdo*\t\t\t\t\t\t *Preco*\t |\n"); printf("| 5 \t\t Frango \t\t\t\t\t\t 7,50 euros\t |\n"); printf("| 6 \t\t Prato do Dia \t\t\t\t\t\t 8,50 euros\t |\n"); printf("| 7 \t\t Bebida \t\t\t\t\t\t 3,00 euros\t |\n"); printf("| 8 \t\t Guarnição \t\t\t\t\t\t 4,00 euros\t |\n"); printf("| 9 \t\t Sobremesa \t\t\t\t\t\t"); printf(" 3,50 euros\t |\n"); printf("|\t\t\t\t\t\t\t\t\t\t\t |"); printf("\n| Para SAIR, marque 10 \t\t\t\t\t\t\t\t |\n"); printf("|\t\t\t\t\t\t\t\t\t\t\t |"); escreveTraco(); printf("\n\nInsira o número do produto que deseja: \n"); do{ scanf("%d",&menu); switch(menu) { case 1: printf("Escolheu o menu 'Frango sem bebida e com acompanhamento'.\n"); printf("Quer adicionar mais algum produto? (S/N)\n"); scanf("%s", &letra); switch(letra){ case 'N': printf("\nTotal: 10,89 euros \nProceda ao pagamento...\n"); scanf("%f", &dinheiro); while(dinheiro<PrecoP1){ dinheiro_falta = PrecoP1 - dinheiro; printf("\nDinheiro insuficiente, falta(m) %.2f euros\n", dinheiro_falta); scanf("%f", &falta); dinheiro = dinheiro + falta; } troco = dinheiro - PrecoP1; printf("\nRetire o seu troco...\n%.2f euros", troco); printf("\n\nAguarde a confeção do seu pedido e depois dirija-se ao balcão para o levantar, seremos rápidos, OBRIGADO!\n\n"); case 'S': printf("Insira o numero do outro produto que quer adicionar: \n"); scanf("%d", &novo_produto); } break; case 2: printf("Escolheu o menu 'Frango com bebida e acompanhamento'.\n"); printf("\nTotal: 13,29 euros \nProceda ao pagamento...\n"); scanf("%f", &dinheiro); while(dinheiro<PrecoP2){ dinheiro_falta = PrecoP2 - dinheiro; printf("\nDinheiro insuficiente, falta(m) %.2f euros\n", dinheiro_falta); scanf("%f", &falta); dinheiro = dinheiro + falta; } troco = dinheiro - PrecoP2; printf("\nRetire o seu troco...\n%.2f euros", troco); printf("\n\nAguarde a confeção do seu pedido e depois dirija-se ao balcão para o levantar, seremos rápidos, OBRIGADO!\n\n"); break; case 3: printf("Escolheu o menu 'Frango com bebida, com acompanhamento e sobremesa'.\n"); printf("\nTotal: 15,00 euros \nProceda ao pagamento...\n"); scanf("%f", &dinheiro); while(dinheiro<PrecoP3){ dinheiro_falta = PrecoP3 - dinheiro; printf("\nDinheiro insuficiente, falta(m) %.2f euros\n", dinheiro_falta); scanf("%f", &falta); dinheiro = dinheiro + falta; } troco = dinheiro - PrecoP3; printf("\nRetire o seu troco...\n%.2f euros", troco); printf("\n\nAguarde a confeção do seu pedido e depois dirija-se ao balcão para o levantar, seremos rápidos, OBRIGADO!\n\n"); break; case 4: printf("Escolheu o menu 'Prato do dia com bebida, acompanhamento e sobremesa'.\n"); printf("\nTotal: 16,99 euros \nProceda ao pagamento...\n"); scanf("%f", &dinheiro); while(dinheiro<PrecoP4){ dinheiro_falta = PrecoP4 - dinheiro; printf("\nDinheiro insuficiente, falta(m) %.2f euros\n", dinheiro_falta); scanf("%f", &falta); dinheiro = dinheiro + falta; } troco = dinheiro - PrecoP4; printf("\nRetire o seu troco...\n%.2f euros", troco); printf("\n\nAguarde a confeção do seu pedido e depois dirija-se ao balcão para o levantar, seremos rápidos, OBRIGADO!\n\n"); break; case 5: printf("Escolheu uma unidose de 'Frango'.\n"); printf("\nTotal: 7,50 euros \nProceda ao pagamento...\n"); scanf("%f", &dinheiro); while(dinheiro<PrecoP5){ dinheiro_falta = PrecoP5 - dinheiro; printf("\nDinheiro insuficiente, falta(m) %.2f euros\n", dinheiro_falta); scanf("%f", &falta); dinheiro = dinheiro + falta; } troco = dinheiro - PrecoP5; printf("\nRetire o seu troco...\n%.2f euros", troco); printf("\n\nAguarde a confeção do seu pedido e depois dirija-se ao balcão para o levantar, seremos rápidos, OBRIGADO!\n\n"); break; case 6: printf("Escolheu uma unidose de 'Prato do dia'.\n"); printf("\nTotal: 8,50 euros \nProceda ao pagamento...\n"); scanf("%f", &dinheiro); while(dinheiro<PrecoP6){ dinheiro_falta = PrecoP6 - dinheiro; printf("\nDinheiro insuficiente, falta(m) %.2f euros\n", dinheiro_falta); scanf("%f", &falta); dinheiro = dinheiro + falta; } troco = dinheiro - PrecoP6; printf("\nRetire o seu troco...\n%.2f euros", troco); printf("\n\nAguarde a confeção do seu pedido e depois dirija-se ao balcão para o levantar, seremos rápidos, OBRIGADO!\n\n"); break; case 7: printf("Escolheu uma unidose de 'Bebida'.\n"); printf("\nTotal: 3,00 euros \nProceda ao pagamento...\n"); scanf("%f", &dinheiro); while(dinheiro<PrecoP7){ dinheiro_falta = PrecoP7 - dinheiro; printf("\nDinheiro insuficiente, falta(m) %.2f euros\n", dinheiro_falta); scanf("%f", &falta); dinheiro = dinheiro + falta; } troco = dinheiro - PrecoP7; printf("\nRetire o seu troco...\n%.2f euros", troco); printf("\n\nDirija-se ao balcão para levantar o seu pedido, OBRIGADO!\n\n"); break; case 8: printf("Escolheu uma unidose de 'Acompanhamento'.\n"); printf("\nTotal: 4,00 euros \nProceda ao pagamento...\n"); scanf("%f", &dinheiro); while(dinheiro<PrecoP8){ dinheiro_falta = PrecoP8 - dinheiro; printf("\nDinheiro insuficiente, falta(m) %.2f euros\n", dinheiro_falta); scanf("%f", &falta); dinheiro = dinheiro + falta; } troco = dinheiro - PrecoP8; printf("\nRetire o seu troco...\n%.2f euros", troco); printf("\n\nAguarde a confeção do seu pedido e depois dirija-se ao balcão para o levantar, seremos rápidos, OBRIGADO!\n\n"); break; case 9: printf("Escolheu uma unidose de 'Sobremesa'.\n"); printf("\nTotal: 3,50 euros \nProceda ao pagamento...\n"); scanf("%f", &dinheiro); while(dinheiro<PrecoP9){ dinheiro_falta = PrecoP9 - dinheiro; printf("\nDinheiro insuficiente, falta(m) %.2f euros\n", dinheiro_falta); scanf("%f", &falta); dinheiro = dinheiro + falta; } troco = dinheiro - PrecoP9; printf("\nRetire o seu troco...\n%.2f euros", troco); printf("\n\nDirija-se ao balcão para levantar o seu pedido, OBRIGADO!\n\n"); break; case 10: printf("Temos muita pena que não queira continuar a operação, OBRIGADO E VOLTE SEMPRE! \n"); break; default: printf("\nNão existe o producto escolhido, volte a introduzir o número do produto que deseja: \n"); } } while(menu>10); } Cumprimentos,
-
Olá, estou a fazer um projeto em c++,"gestão de alunos" com vários menus, como fazer para voltar. Ex: 1- inserir dados; 2 - Consultar dados e 3- sair. obrigado
-
Como faço pra esse código ler vários números até o usuário digitar -1 e no fim mostrar a soma dos divisores de cada um? #include <iostream> using namespace std; int main() { int valor,i, soma; soma = 0, i = 1; cin>>valor; while(i < valor and valor !=-1) { if (valor%i==0) { soma += i; } i++; } cout<<soma<<endl; return 0; }
-
Boa tarde Estou a tentar fazer um exercicio quero criar um programa que lê-se as combinaçoes dos teclados antigos dos telemoveis por exemplo 222 2 333 33 daria "cafe" como é que posso fazer isto ? Não existe nenhuma função que agrupe os numeros num array para ficar {"222","2","333","33"}, isto facilitaria bastante o problema. Desde Ja Obrigado
-
Manipulação de Arquivos do Tipo Texto Ver Ficheiro Notes de aula sobre manipulação de arquivos de texto em C++. Universidade de São Paulo Departamento de Física e Matemática Autor: Prof. Dr. José Augusto Baranauskas Submetido por Erik Submetido em 09/11/2020 Categoria Textos Académicos Licença Website http://dcm.ffclrp.usp.br/~augusto/teaching/ici/ Submetido pelo Autor? Não