-
Posts
6.318 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que devair1010 postou
-
C Simulador caixa eletrônico em C deposito negativo
devair1010 respondeu ao tópico de Joaoborotto em C/C#/C++
@Joaoborotto clicando ali na opção 1 pode inserir um valor para o saldo inicial , ou você pode criar a variável "saldo" já inicializada com um valor que você queira float saldo = 500.00; float valor = 0.00; ou criar mais uma opção no menu para abrir uma conta nesse banco , assim terá os dados do cliente e o valor depositado na hora da abertura . e você está usando apenas variáveis simples , que podem armazenar apenas um valor de cada vez , e você teria melhorias , se usar variáveis compostas , que podem ser vetores , matrizes , struct e typedef struct , que armazenam nelas vários valores ao mesmo tempo .. -
C Simulador caixa eletrônico em C deposito negativo
devair1010 respondeu ao tópico de Joaoborotto em C/C#/C++
@Joaoborotto usando o botão code "<>" se código fica bem coloridinho e fácil de copiar para testar , seu código modificado poderia ser assim : #define _WIN32_WINNT 0x600 #define _h GetStdHandle(STD_OUTPUT_HANDLE) #include <stdio.h> #include <time.h> #include <locale.h> #include <stdlib.h> #include <conio.h> #include <string.h> #include <windows.h> int main( int Argc, char **Argv ) { setlocale(LC_ALL,"portuguese"); float saldo, valor; int opcao = 0; char data[9],hora[9]; while (opcao != 4) { printf ( "\n Bem-vindo ao banco lorena!\n" " 1-) Depositar um valor:\n" " 2-) Sacar um valor :\n" " 3-) Listar saldo :\n" " 4-) Sair do programa :\n" " Escolha uma opcao : "); scanf ("%d", &opcao); switch (opcao) { case 1: printf ("\nDigite o valor para deposito: "); scanf ("%f", & valor); saldo += valor; printf ("\nVoce depositou R$%6.2f reais com sucesso.\n", valor); break; case 2: printf ("\nSeu saldo atual eh R$%6.2f reais.\n", saldo); printf ("Digite o valor para saque: "); scanf ("%f", & valor); if (valor <= saldo && valor >=0 ) { saldo -= valor; printf ("\nVoce sacou R$%6.2f reais com sucesso.\n", valor); } else { if(valor < 0) { printf("Digitou um VaLor Negativo , não pode !\n"); } else { printf ("\nVoce não possui saldo suficiente !\n"); } } break; case 3: printf ("\nSeu saldo atual eh R$%6.2f reais.\n", saldo); break; case 4: printf ("\n\n\nvoce escolheu sair do programa !\n"); return 0;; default: printf ("\nOpcao invalida !"); } _strdate(data); _strtime(hora); printf("Data %s %s\n", data,hora); printf ("\nSeu saldo atual eh R$%6.2f reais.\n", saldo); } return 0; } -
C Simulador caixa eletrônico em C deposito negativo
devair1010 respondeu ao tópico de Joaoborotto em C/C#/C++
@Joaoborotto no IF do case 2 fica a validação e se for negativo informe com uma mensagem e volta para o menu , If( valor <= saldo && valor >= 0 ) -
@Bunitão parece que não se pode fazer cálculos entre struct's , e sim nas variáveis que estejam dentro da struct , #define _WIN32_WINNT 0x600 #define _h GetStdHandle(STD_OUTPUT_HANDLE) #include <cstdio.h> #include <cstdlib.h> #include <conio.h> #include <string.h> #include <windows.h> #include <iostream> #include <iomanip> using namespace std; struct horario { int hora; int minuto; }; /// istream& operator>>(istream&, horario&); /// ostream& operator<<(ostream&, horario); /// horario operator-(horario, horario); int main( int Argc, char **Argv ) { horario h1, h2; cout << "Hora inicial "; cin >> h1.hora; cout << "Minuto inicial "; cin >> h1.minuto; cout << "\nHora FinaL "; cin >> h2.hora; cout << "Minuto FinaL "; cin >> h2.minuto; int resH = h2.hora-h1.hora ; int resM = h2.minuto-h1.minuto; /// cout << "Resultado = " << setw(3)<< (h1 - h2) << endl; cout << "\nResutaDo Horas " << resH << " : " << resM << "Minutos." << endl; cout << "resultado em Minutos " << abs(resH*60+resM) << endl; return 0; }
-
Arduino Porque minha programação em python não fica salva no Arduino?
devair1010 respondeu ao tópico de Random Guy em Microcontroladores
@Random Guy . Olá, essa placa de Arduíno funciona sem estar conectada no Pc , sim , se você fizer a programação na IDE Arduíno que usa a linguagem C , e o programa fica gravado nela até que seja substituído por outro , pois só pode haver um, , e mesmo sem nenhuma conexão elétrica , -
C# Preciso fazer uma comparação de duas matriz e saber se tem um padrão
devair1010 respondeu ao tópico de ivanRezende em C/C#/C++
@ivanRezende uma maneira de testar esse padrão é criar um mapa das posições da matriz , e ao encontrar um padrão insira nesse mapa o padrão assim ao comparar o restante da Matriz saberá se está sobrepondo um outro já encontrado antes , e usando essas duas matrizes do exemplo que você postou , ou com geradas matrizes aleatóriamente , seu código poderia ser assim : using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Drawing; using System.IO; using System.Globalization; using System.Threading.Tasks; using System.Runtime.ConstrainedExecution; using System.Xml.Schema; namespace matriz_121 { internal class Program { static void Main(string[] args) { /// CriaMatriz("A.txt", 200, 350); /// CriaMatriz("B.txt", 3, 4); /// Matriz principaL Matriz padrão /// usando o exemplo 001010100 101 /// 101010110 011 /// 110110110 101 /// 001010000 int[,] A = LerMatriz("A.txt"); int[,] B = LerMatriz("B.txt"); int[,] aux = new int[200, 350]; Console.WriteLine("\nQtd de OcorrenciaS = " + NumeroDeOcorrencias(A, B, aux)); Console.BackgroundColor = (ConsoleColor)((4) % 16); Console.WriteLine(" "); Console.BackgroundColor = (ConsoleColor)((0) % 16); ///grafico(aux); } static int NumeroDeOcorrencias(int[,] matriz, int[,] padrão, int[,] aux) { int N = matriz.GetLength(0), M = matriz.GetLength(1); int n = padrão.GetLength(0), m = padrão.GetLength(1); for (int w = 0; w < N; w++) for (int k = 0; k < M; k++) aux[w, k] = 7; /// preench a matriz Aux , usada como um mapa , com valor 7 int contador = 0; int elemento = 0; int i = 0, j = 0; for (i = 0; i < N - (n - 1); ++i) /// percore todas as linhas da Mat Principal { /// menos a qtd da matriz padrão for (j = 0; j < M - (m - 1); ++j) /// percore todas as colunas da Mat principal { /// menos a qtd da matriz padrão elemento = 0; /// inform a qtd de posições iguais nas duas for (int w = 0; w < n; w++) /// percore todas as linhas da Mat Principal { for (int k = 0; k < m; k++)/// percore todas as colunas da Mat Principal { if (matriz[i + w, j + k] == padrão[w, k] && aux[i + w, j + k] == 7) /// verif as pos das duas Matr e no mapa elemento += 1; } } if (elemento == (n * m)) /// qtd element iguais entre as duas matrizes { /// Eh igual total elementos da Matr padrão ? /// String.Format("{0,10:0.0}", contador/*123.4567*/); " 123.5" contador += 1; /// incrementa a qtd de Ocorrencias string valor = contador.ToString("D3"); /// formatar a saIda p ficar na mesmo coluna Console.WriteLine("achou " + valor + " iguais"); for (int w = 0; w < n; w++) for (int k = 0; k < m; k++) aux[i + w, j + k] = matriz[i + w, j + k];/// coloca no mapa a matriz padrão /// pois essas pos não pode ser mais usadas } } } Console.WriteLine("\nMatriz Aux é Mapa e onde padrão Se encaixA\n"); for (i = 0; i < N; ++i) /// percore todas as linhas da Mat Auxiliar { for (j = 0; j < M; ++j) /// percore todas as colunas da Mat Auxiliar { Console.BackgroundColor = (ConsoleColor)((0) % 16); if (aux[i, j] == matriz[i, j]) { Console.BackgroundColor = (ConsoleColor)((4) % 16); Console.Write(aux[i, j]); /// escreve a matr aux } else { Console.Write(matriz[i, j]); /// escreve a matr matriz } } Console.WriteLine(); } Console.Beep(4096, 100); Thread.Sleep(300); return contador; } static int[,] LerMatriz(string fileName) { FileStream f = new FileStream(fileName, FileMode.Open); StreamReader sr = new StreamReader(f); string[] tamanho = sr.ReadLine().Split(' '); int n = int.Parse(tamanho[0]); int m = int.Parse(tamanho[1]); int[,] ret = new int[n, m]; for (int i = 0; i < n; ++i) { string linha = sr.ReadLine(); for (int j = 0; j < m; ++j) { ret[i, j] = linha[j] == '0' ? 0 : 1; } } sr.Close(); return ret; } static void CriaMatriz(string fileName, int n, int m) { Random r = new Random(); FileStream f = new FileStream(fileName, FileMode.Create);// abre o arquivo nomeado fileName StreamWriter sw = new StreamWriter(f); // escritor do arquivo sw.Write($"{n} {m}\r\n"); for (int i = 0; i < n; ++i) { for (int j = 0; j < m; ++j) { sw.Write(r.Next(2) == 0 ? '0' : '1'); } sw.Write("\r\n"); } sw.Close(); f.Close(); } /******** * static int[,] grafico(int[,] aux ) { int N = aux.GetLength(0), M = aux.GetLength(1); for (int i = 0; i < N; ++i) { for (int j = 0; j < M; ++j) { if (aux[i,j] == 1) { Console.Beep(1,1); /// emite um bip no speker do sistema Console.SetPixel(i,j,RGB(255,255,0)); /// desenhar a matriz na tela /// Cor amarela } } } } * *********/ } } -
Arduino Porque minha programação em python não fica salva no Arduino?
devair1010 respondeu ao tópico de Random Guy em Microcontroladores
@Random Guy . Ao que parece os programas python no arduíno funcionam dessa forma mesmo, pois eles são interpretados pela biblioteca pyfirmata , que fica instalada no Pc. , e ao ser desconectado o arduíno não recebe mais os comandos , e imaginei uma possibilidade , se conseguir criar um executável do programa python e inserir no arduíno , talvez funcione . melhor mesmo fazer na IDE Arduíno . -
Python Email com imagem no corpo
devair1010 respondeu ao tópico de Breno Busnello em Programação - outros
@Breno Busnello poste o código todo , para testarmos . e @ricardo_br pelo tipo da sintaxe creio que seja python . -
Outro Formatação com 2 SSD
devair1010 respondeu ao tópico de Andre Matos Ferreira em Programação - outros
@Andre Matos Ferreira foi exatamente isso que eu fiz removi o SSD de arquivos e coloquei um novo e instalei o windows 10 , e depois conectei o cabosata do SSD de arquivos novamente e funcionou de boa , mas porém os programas que estiverem instalados no SSD de arquivos também funcionam mas precisam de colocar o caminho para eles novamente . -
VisualG Remover usuário da estrutura de dados
devair1010 respondeu ao tópico de joshuayuuki em Programação - iniciantes
@Drakrar você , na função excluir , já encontrando o nome que quer excluir ,volta a pesquisar no mesmo vetor procurando pela mesma posição já encontrada , e nem precisam , pois se já sabes a posição então basta puxar os dados de cima para baixo e decrementar o contador , @ewertondamax olá , boa tarde , as posições da memória sempre tem algum dado gravado nelas , mesmo que seja o valor zero , então o que se pode é modificar o conteúdo de tal posição de memória , e creio que você percebeu que ao excluir um dado o algoritmo puxa os dados de cima para baixo , mas apenas isso não resolve , pois vai continuar com a mesma quantidade de cadastros , e os dados continuarão lá no mesmo lugar , e o que resolve mesmo é decrementar o contador , e o algoritmo passa a considerar válidos apenas a quantidade apontada pelo contador , e sendo assim se você quiser remover todos os dados cadastros basta zerar o contador . Algoritmo "Entrada de dados com vetor pesquisa e delete" Var nomeusuario : vetor [1..10] de caractere idadeusuario : vetor [1..10] de inteiro sairsistema : logico resp : caractere numero,z,x,encontrou : inteiro pesqnome ,removenome : caractere contador , contador2 : inteiro Inicio sairsistema := falso enquanto sairsistema = falso faca escreval(" Escolha uma opção. ") escreval("1- Cadastro usuario. ") escreval("2- Lista de usuarios. ") escreval("3- Sair do sistema. ") escreval("4- Buscar usuario pelo nome.") escreval("5- Remover usuario. ") escreval("6- Remover Todos usuario. ") leia(numero) escolha numero caso 1 escreval("quantos usuarios deseja cadastrar?") leia(contador2) contador:= contador+contador2 se (contador>=11)então escreval(" O cadastro de usuarios é de no maximo 10 usuarios!") contador:= contador-contador2 senao para x de 1 ate contador faca se (nomeusuario[x] = "")então escreval("a posição", x, " de",contador," esta disponivel") escreval("digite o nome do usuario.") leia(nomeusuario[x]) escreval(" agora digite a idade do usuario.") leia(idadeusuario[x]) escreval("cadastro realizado") senao escreval("a posição", x," esta ocupada") fimse fimpara fimse caso 2 se (nomeusuario[x] = "")então escreval(" não foi encontrado nenhum usuario cadastrado.") senao escreval("usuarios cadastrados sao:") para x de 1 ate contador faca escreval("usuario :",nomeusuario[x]," idade: ",idadeusuario[x]) fimpara fimse caso 3 escreval(" o sistema sera finalizado") sairsistema:= verdadeiro caso 4 encontrou:=0 escreval("Digite o Nome do usuario a ser pesquisado.") leia(pesqnome) para x de 1 ate contador faca se (nomeusuario[x]= pesqnome) então escreval("a pesquisa encontrou o nome ",nomeusuario[x]," na posição",contador,".") encontrou:= 1 fimse fimpara se (encontrou = 0)então escreval("o nome da pesquisa não foi localizado no sistema!.") fimse caso 5 encontrou := 0 escreval("Informe um nome para remoção do cadastro.") escreval("Lembre que após exclui-lo não será possível reverter,") escreval("apenas realizando novo cadastro") leia(removenome) para x de 1 ate contador faca se (nomeusuario[x] = removenome)então escreval("a pesquisa encontrou o nome ",nomeusuario[x]," na posição ",contador," e será removido") encontrou := 1 interrompa //nomeusuario[x]:="" //idadeusuario[x]:= 0 fimse fimpara se encontrou = 1 então para z de x ate contador faca //se(nomeusuario[x]="")então não precisa dessa comparar // jA sabe a posiCao no loop de cima nomeusuario [z] := nomeusuario [z+1] // puxa os dados de cima para baixo idadeusuario[z] := idadeusuario[z+1] // nos dois vetores contador := contador - 1// qtd de usuArios cadastrados // decrementa contador pois excluiou um //fimse fimpara se (encontrou = 0)então escreval("o nome para remoção não foi localizado no sistema !.") fimse caso 6 escreval("Vai Mesmo excluir todos os usuáriosd cadastrados S/N ") leia(resp) se resp = "s" então contador := 0 // nenhum usuArio vAlido no vetor fimse outrocaso escreval("não consegui identificar a resposta escolha novamente.") fimescolha fimenquanto Fimalgoritmo -
@Breno Busnello olá , obrigado pela consideração , mas ainda não entendo como funcionam e nem sei programar as listas encadeadas , e o mérito desse poste citado é do nosso amigo @arfneto ,
-
VisualG Tem algum bug no Visualg?
devair1010 respondeu ao tópico de Fabricio Benedito Rogado em Programação - iniciantes
@Fabricio Benedito Rogado o visualG da versão 3.0 .6.5 não tem bug , porém ele precisa de melhorias , pois ele nem sempre informa o erro exato , mas diz apenas que foi encontrado um erro , e o usuário é que precisa descobrir qual erro realmente existe , e nesse caso o erro é por que não existe uma posição zero nesse seu vetor cartas , pois ele foi declarado com 6 posições e que começam a partir de 1 , e outra coisa é que no visualG as palavras chaves dos comados não podem tem acentuação , e seu código pode ser modificado para algumas coisa parecido com esse aqui : Algoritmo "não bug" // Data atual : 10/01/2023 Var cartas : vetor[1..6] de inteiro contador,i : inteiro procedimento ordena_as_cartas ( n : inteiro ) var i , j , aux : inteiro inicio escreval("Valor De N = " , n ) para j de 6 ate 1 passo -1 faca para i de 1 ate j-1 passo 1 faca se cartas[i] > cartas[i+1] então aux <- cartas[i] cartas[i] <- cartas[i+1] cartas[i+1] <- aux fimse fimpara fimpara fimprocedimento Inicio escreval("Antes Da Ordenação") escreval repita contador := contador + 1 cartas[contador] := randi( 100 ) escreval("posição ",contador," = ", cartas[contador] ) ate contador > 5 ordena_as_cartas( 6 ) escreval escreval("Depois Da Ordenação") para i de 1 ate 6 faca escreval("posição ",i," = ", cartas[i] ) fimpara Fimalgoritmo -
@manuelsilva ok , meu amigo , mas não sei se você já sabes que a Linguagem C++ aceita todos os comandos da linguagem C , e assim ao criar seu código no codeblocks , você pode criar lo em linguagem c++ escolhendo essa opção , e insira todo seu código , que esteja na linguagem c , e ele vai funcionar bem , e além de executar seu código com os comandos da linguagem c ele vai executar também os que sejam da linguagem c++ , e alguns compiladores já cria o arquivo no formato da linguagem c++ , como é o caso do Dev C++ ou o Visual Studio da Microsoftt , e mesmo assim pode colocar os comandos da linguagem c que funciona normalmente , mas se você quer que o arquivo seja apenas para a linguagem c mesmo ,e então você pode modificar aquele código que postei no tópico #4 , por um outro semelhante a esse aqui : #define _WIN32_WINNT 0x600 #define _h GetStdHandle(STD_OUTPUT_HANDLE) #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> #include <windows.h> #include <windowsx.h> #include <mmsystem.h> int main(int argc, char *argv[]) { PlaySound("pipo.wav",NULL,SND_SYNC | SND_LOOP | SND_FILENAME); /// C:\Snakes and Ladders\snake return 0; }
-
@manuelsilva o playsound é da linguagem C++ , e funciona assim : #include<iostream> /// oreisa desses linkr's no settimgs / compiler / linker settings / other linkers options #include<windows.h> /// -lgdi32 /// -lmingw32 /// -lopengl32 /// -lopengl32 /// -lwinmm usingng namespacece std; int main(){ string name; string a1 = "pipo.wav"; /// nome do arquivo de audio q esteja na mesma pasta desse código string a2 = "apple.wav"; PlaySound((a1.c_str()),NULL,SND_SYNC); /// executa a mUsica até o finaL dela PlaySound((a2.c_str()),NULL,SND_SYNC); /// porém o código só continua apOs terminar a mUsica return 0; }
-
@manuelsilva entendi que você quer reproduzir uma música no formato WAV , e para isso você pode usar o comando playsound que faz parte da API do windows .
-
C++ Programa que separa produto mais vendido e menos vendido
devair1010 respondeu ao tópico de Fernanderson_ em C/C#/C++
@donutLukke na verdade esse código que @Fernanderson_ postou está todo na linguagem C mesmo , e apenas o comando "cin >> " é da linguagem C++ , e um básico de C++ seria assim : #define _WIN32_WINNT 0x600 #define _h GetStdHandle(STD_OUTPUT_HANDLE) #include <iostream> #include <conio.h> #include <windows.h> #include <iostream> #include <vector> #include <windows.h> #include <iomanip> #define N 10 using namespace std; /// serve para evitar ficar colocando " std:: " int main( int Argc , char **Argv ) { vector < int > vetor ; /// se inicializar desloca as posições int cod = 0; for( int i=0; i<N; i++) /// repetir N vezes { cout << "o Codigo do produto vendido "; /// msg p usuario cin >> cod; /// lE o cOdigo vetor.push_back( cod ); /// armazena no vetor } for( int i=0; i<N; i++ ) cout << setw(3) << i+1 << (char)166 << " pos= " << setw(3) << vetor[i] << endl; return 0; } -
C Invasão de memória de uma string sobre outra string
devair1010 respondeu ao tópico de donutLukke em C/C#/C++
@donutLukke seu código que está no Replit está com erro e não compila , e copiado para o codeblock funciona mas veio com muitos caracteres especiais lá do site e ainda não consegui remove los do texto , e ali no post #2 do código que postei acima , ficou com o mesmo erro de antes , mas não haver esse erro seria modificar isso aqui : #define CAID 10 #define CANOME 110 /// assim o nome pode ter muitas letras #define CACPF 12 -
VisualG Simulacao de prova de conhecimento gerais
devair1010 respondeu ao tópico de Resende inacio em Programação - iniciantes
@Resende inacio creio que poderia ser assim : Algoritmo "Ordem CescenTe" var acertos,erros : vetor[ 1..3 ] de inteiro //Variaveis para armazenar o acerto e erros separados para cada pessoa em vetor questoes,respostas : vetor[ 1..10,1..5] de caractere nome : vetor[ 1..3 ] de caractere // variavel para armazenar o nome de cada pessoa separado q fizer a prova em vetor res , aux : caractere // variavel para ler a resposta de cada questão i , j ,q ,auxiliar : inteiro // contador percentualacertos1 : real percentualacertos2 : real // variveis para calcular o percentual de acertos das questões percentualacertos3 : real inicio questoes[1,1] := " Quem foi a primeira pessoa a viajar no Espaço? " questoes[1,2] := "A) Yuri Gagarin" questoes[1,3] := "B) A cadela Laika" questoes[1,4] := "C) Neil Armstrong" questoes[1,5] := "D) Buzz Aldrin" questoes[2,1] := " Qual a montanha mais alta do mundo? " questoes[2,2] := "A) Monte Everest" questoes[2,3] := "B) Monte Chimborazo" questoes[2,4] := "C) Pico da Neblina" questoes[2,5] := "D) Monte Chimborazo" questoes[3,1] := " Onde se localiza Machu Picchu? ") questoes[3,2] := "A) Peru " questoes[3,3] := "B) Colômbia" questoes[3,4] := "C) Bolívia" questoes[3,5] := "D) Argentina" questoes[4,1] := " Quanto tempo a Terra demora para dar uma volta completa em torno dela mesma ") questoes[4,2] := "A) 365 dias " questoes[4,3] := "B) 30 dias " questoes[4,4] := "C) 24 horas " questoes[4,5] := "D) 7 dias " questoes[5,1] := " Qual a Temperatura de ebulição da água? ") questoes[5,2] := "A) 100° C " questoes[5,3] := "B) 90° C" questoes[5,4] := "C) 200° C " questoes[5,5] := "D) 150° C" questoes[6,1] := " Qual o maior planeta do sistema solar? ") questoes[6,2] := "A) Júpiter" questoes[6,3] := "B) Saturno " questoes[6,4] := "C) Terra " questoes[6,5] := "D) Lua" questoes[7,1] := " Qual o monumento famoso pela sua inclinação? ") questoes[7,2] := "A) Torre de Pisa " questoes[7,3] := "B) Torre Eiffel" questoes[7,4] := "C) Estatua da Liberdade " questoes[7,5] := "D) Esfinge" questoes[8,1] := " Qual a especialidade do otorrinolaringologista? ") questoes[8,2] := "A) Tratamento das doenças relacionadas a nariz, ouvido e garganta" questoes[8,3] := "B) Tratamento das doenças dos olhos" questoes[8,4] := "C) Tratamento de estomago" questoes[8,5] := "D) Tratamento das doenças da pele" questoes[9,1] := " Que grande evento histórico aconteceu em 1822 no Brasil? ") questoes[9,2] := "A) Independencia do Brasil" questoes[9,3] := "B) Descobrimento do Brasil" questoes[9,4] := "C) Ditadura Militar" questoes[9,5] := "D) Construção de Brasilia" questoes[10,1] := " Qual a primeira mulher a ganhar um prêmio Nobel? ") questoes[10,2] := "A) Madre Teresa de Calcutá" questoes[10,3] := "B) Elizabeth Blackweel " questoes[10,4] := "C) Valentina Tereshkova" questoes[10,5] := "D) Marie Curie" para i de 1 ate 3 passo 1 faca // laco de repetiCAo para fazer a prova para 3 Alunos diferentes escreval escreval(" ","[",i," ]","° Aluno ") escreval escreval("==================================================================================") escreval(" PROVA DE CONHECIMENTO GERAIS! ") escreval("==================================================================================") escreval escreva("Nome: ") leia(nome[i]) para j de 1 ate 10 faca escreval escreval escreval("==================================================================================") escreval(" ",j," ° Questão ") escreval("==================================================================================") // inicio da prova com as questões escreval para q de 1 ate 5 faca escreval(questoes[ j , q ] ) fimpara escreval escreval("Resposta: ") leia( res ) // ler as respostas enquanto ( res < "a" ) ou ( res > "d" ) faca escreval("Opção Invalida! Digite outra resposta") leia( res ) fimenquanto se res = "a" então // comando se vai comparar se a resposta foi correta ou não e vai contabilizar os acertos e erros acertos[i] := acertos[i] + 1 senao erros[i] := erros[i] + 1 fimse limpatela fimpara fimpara percentualacertos1:=(acertos[1]/10)*100 percentualacertos2:=(acertos[2]/10)*100 //atribuição para o calculo de percentual de acertos percentualacertos3:=(acertos[3]/10)*100 para i de 1 ate 3 faca para j de 1 ate 3 faca se acertos[i] < acertos[j] então auxiliar := acertos[i] acertos[i] := acertos[j] acertos[j] := auxiliar // organiza os acertos auxiliar := erros[i] erros[i] := erros[j] erros[j] := auxiliar // organiza os erros aux := nome[i] // organiza os nomes nome[i] := nome[j] nome[j] := aux fimse fimpara fimpara escreval escreval("====================================================================================") escreval(" RESULTADO DAS PROVAS! ") escreval("====================================================================================") para i de 1 ate 3 faca escreval escreval("Resultado prova ",i," ! Nome: ",nome[i]," Acertos: ",acertos[i]," Percentual de: ",percentualacertos1:6:2,"% Erros: ",erros[i]) fimpara fimalgoritmo -
C Invasão de memória de uma string sobre outra string
devair1010 respondeu ao tópico de donutLukke em C/C#/C++
@donutLukke creio que seja por que a string foi declarada com onze espaços , e assim só pode armazenar dez caracteres do nome , e o último espaço reservado será usado para armazenar o newLine da tecla enter , então se você colocar a string com maior quantidade de espaços não haverá erro . como você pode ver nesse código : #define _WIN32_WINNT 0x600 #define _h GetStdHandle(STD_OUTPUT_HANDLE) #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> #include <windows.h> #define CAID 10 #define CANOME 11 #define CACPF 12 typedef struct A { char id [CAID ]; char nome[CANOME]; char cpf [CACPF ]; struct A *esquerdo ; struct A *direito ; short altura ; } stc_Aluno ; int main( int Argc , char **Argv ) { stc_Aluno al[5]; int cor_letra, cor_fundo; CONSOLE_SCREEN_BUFFER_INFO c; if( GetConsoleScreenBufferInfo( _h, & c ) ) { cor_letra = ( c.wAttributes & 0xFF ) & 0x0F; cor_fundo = ( (c.wAttributes & 0xFF ) >> 4 ) & 0x0F; } SetConsoleTextAttribute( _h , 14 + ( 12 << 4 ) ); strcpy(al[0].nome , "Fulano Cic" ); /// essa string pode ter no mAximo 11 caracteres /// sendo que o Ultimo serA o newLine "\n" tecla "Enter" strcpy(al[0].cpf , "12345678910" ); printf(" Nome -> %10s \n Cpf -> %10s \n", al[0].nome , al[0].cpf ); SetConsoleTextAttribute( _h , cor_letra + ( cor_fundo << 4 ) ); return 0; } -
VisualG Simulacao de prova de conhecimento gerais
devair1010 respondeu ao tópico de Resende inacio em Programação - iniciantes
@Resende inacio essa lógica não está muito boa , não , pois você está contando os acertos e erros , e não precisa usar vetor para isso , melhor seria usar os vetores para armazenar as questões e respostas e após terminar todas as questões , faz a contagem dos acertos e erros , e não precisa repetir a mesma parte do código várias vezes , se usar um laço de repetição que vai pegando as Questões armazenadas previamente em um vetor de caracteres antes do início do programa , e assim você poderia usar um método de ordenação de vetores , como o bubbleSort ou o AncoraSort e teria a classificção dos melhores pontuados decrescendo para os que tenham menos quantidade de pontos . -
@Robs156 ele vai funcionar , mas porém se digitar número ímpar ou letras ao invés de número , ele vai para a execução e sair ., então creio que seria melhor validar o que for digitado , e se não for válido voltar e repetir para pegar o número da mesma posição do vetor , e usando a função "fgets" que lê string's , assim pode digitar qualquer caractere e a função "atoi" converte a string para int , você faz as comparações .
-
VisualG EXERCICIOS DE "ENQUANTO" não consigo atribuir uma variante
devair1010 respondeu ao tópico de ALoneW em Programação - iniciantes
@ALoneW . O que acontece é que se você usar o "senão" ele faz apenas uma parte do código e ignora o restante , e outra coisa é que no visualG as variáveis são globais e assim ao cria Las o compilador já estabelece o valor zero nelas , por isso não precisa inicializa Las com esse valor zero , mas apenas se for outro valor qualquer, e esse "cont" , melhor seria se também fosse zero , assim reduziria o código , e no enquanto colocar enquanto cont < 2 faca , ao invés de "<=" .. -
@luhowl seu código está Quase completo , mas esse terceiro Loop não precisa dele como bem Disse @Midori , e creio também que o enunciado quer que os números após serem Multiplicados pelo maior deles , também sejam colocados os resultados desses valores de volta no mesmo vetor nas respectivas posições novamente , e para fazer uma validação de modo a não haver bug na hora de digitar os valores que são do tipo inteiro , e se for digitado uma letra , use a função fgets , que pega uma string que pode ter qualquer caractere e converta essa string para int usando a função atoi , e seu código ficou assim : #define _WIN32_WINNT 0x600 #define _h GetStdHandle(STD_OUTPUT_HANDLE) #include <stdio.h> #include <stdlib.h> #include <windows.h> #include <conio.h> #include <string.h> #include <limits.h> /// limites valor de tipos #define TAM 5 #define cls system("cls||clear"); /// questão 1) Faça um programa em C que leia um vetor /// de 15 posições de números inteiros e multiplique /// todos os elementos pelo maior valor do vetor. /// Mostre o vetor após os cálculos . int main() { int vet[TAM] = {0}; int multi = 0 ; int i = 0 ; char ax[5] = "" ; int maior_valor = INT_MIN; /// Macro da Biblioteca limits.h int cor_letra, cor_fundo; CONSOLE_SCREEN_BUFFER_INFO c; if( GetConsoleScreenBufferInfo( _h , & c ) ) { cor_letra = ( c.wAttributes & 0xFF ) & 0x0F; cor_fundo = ( (c.wAttributes & 0xFF ) >> 4 ) & 0x0F; } SetConsoleTextAttribute( _h , 12 + ( 15 << 4 ) ); printf(" Insira os valores do vetor- \n"); SetConsoleTextAttribute( _h , 11 + ( 0 << 4 ) ); for( int i=0; i<5; i++) /// alguns compiladores aceitam criar a variAvel dentro do loop { printf(" %d%c Valor " , i+1 , 167 ); fgets( ax , sizeof( ax ) , stdin ); vet[i] = atoi( ax ); if( maior_valor < vet[i] ) maior_valor = vet[i]; } cls /// para Limpar a tela em Windows e Linux SetConsoleTextAttribute( _h , 12 + ( 10 << 4 ) ); printf(" aqui estão os Vetor Mutiplicado: \n"); SetConsoleTextAttribute( _h , 14 + ( 0 << 4 ) ); for( int i=0; i<5; i++ ) { vet[i] *= maior_valor; printf("%d%c PosiCAo = %3d\n", i+1 , 167 , vet[i] ); } SetConsoleTextAttribute( _h , cor_letra + ( cor_fundo << 4 ) ); /// funCAo da API do Windows return 0; /// a funCAo main eh do tipo int e retorna algum valor }
-
Outro Qual linguagem eu devo começar?
devair1010 respondeu ao tópico de Júlia Donadelli em Programação - iniciantes
@Júlia Donadelli . Python é uma boa opção para Web , C# também , e JavaScript também . -
C Faça um programa que calcula a raiz quadrada de um número EM NEANDER e EM C
devair1010 respondeu ao tópico de Sathosi em C/C#/C++
@Sathosi esse código modificado para extrair a raiz Quadrada do número 81 : ;-------------------------------- ; Programa -: Raiz Quadrada ; Autor ----: Devair ; Data -----: 23/12/2022 ;-------------------------------- ; aqui no editor os valores estão na Base 10 ( DecimaL ) ; no Visor e nas Flag's estão escritos na ; Base 16 , ( HexadacimaL ) ; As variAveis sAo Opcionais , pois podem ser substituIdas ; pelos respectivos endereCos a equ 128 ; a = endereCo de memória 128 b equ 129 ; b = endereCo de memória 129 c equ 130 ; c = endereCo de memória 130 x equ 131 ; x = endereCo de memória 131 y equ 132 ; y = endereCo de memória 132 org 0 ; inIcio Do Programa ldi 0 ; carrega Registrador/Acumulador A com valor zero sta a ; valor iniciaL Das MultipliCOes ldi 81 ; nUmero decimal para extrair raiz Quadrada sta y ; armazena no endereCo y = 132 ldi 1 ; carrega Registrador/Acumulador A com valor zero sta b ; incremento do loop sta c ; nUmeros sequenciais comeCa em 1 p ver se eh a Rzq L0: ; Label L0 lda c ; eh o Multiplicando sta c ; e o MultiplicadoR , pois eh RzQ , ( num x mesmo ) L1: ; Label L1 , inIcio do loop Q faz a multipl sta x ; Multiplicad qtd vezes lda a ; Acumulador A com qtd de x somar add c ; soma com o mesmo nUmero ( num x num ) sta a ; O vaLor do increMento lda x ; eh O Num p Extrir a QzQ sub b ; diminuiu mais um jnz L1 ; se não for zero volta a L1 p somar de novo fim: ; Label Final da MultiplicaAo lda a ; carrega o resultado da multipl out 0 ; mostra result da multipl lda y ; carrega A com val do num extr raiz sub a ; subtrai o result da multipl jz rzq ; se res da subtr for zero pula p rzq lda c ; carrega num em test add b ; incrementa esse num testado sta c ; armazena esse novo num ldi 0 ; carrega Acumulador A com val zero sta a ; guarda p inicio da nova multiplic jmp L0 ; volta p testar esse novo num rzq: ; Label da raiz Quadrada Que já foi achada lda c ; eh a raiz quadrada out 0 ; mostra a raiz quadrada hlt ; Termino do Programa na tela do neanderWin observe que cada número , na base Decimal , será multiplicado por ele mesmo e o resultado mostrado no visor , no sistema Hexadecimal , enquanto não encontrar a raiz quadrada , do número que se quer saber a raiz quadrada , e as flag's irão se mover , mas ao encontrar a raiz quadrada essas flag's irão para de se movimentar .e o resultado estará no visor em Hexadecimal .
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais