Ir ao conteúdo
  • Cadastre-se

Fabio Ramalho

Membro Júnior
  • Posts

    8
  • Cadastrado em

  • Última visita

Tudo que Fabio Ramalho postou

  1. Olá pessoal!! Preciso de uma ajuda ! Fiz um código para cadastrar produtos e pedidos. Ambos cadastros eu coloco em LISTAS : produto LISTA e pedido LISTA2. Eu fiz uma função para remoção do cadastro em uma posição dada, porém ele não está funcionando, acredito que está retornando 0. Abaixo segue o código. Se alguém puder me dar uma luz ! hehe Abraços! #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<string.h> typedef struct cadastro { int cod; char nome_agulha[30]; int serie; int qtde; float preco; int forca_mola; } agulha; typedef struct pedido { int cod; char nome_pedido[30]; int qtde; float preco_pedido; }venda; typedef struct LISTA { int quant; agulha dados[30]; }LISTA; typedef struct LISTA2 { int quant; venda dados[30]; }LISTA2; void entrada_cadastro(LISTA *temp); void entrada_pedido(LISTA2 *temp); //void remove_cadastro(LISTA *temp); int insereInicioL(LISTA *temp, agulha dado); int insereInicioL2(LISTA2 *temp, venda dado); int removePosL(LISTA *temp, agulha *dado, int pos); int removePosL2(LISTA2 *temp, venda *dado, int pos); int main() { LISTA finfo; LISTA2 linfo; venda info2; agulha info; int pos; finfo.quant = 0; do { printf("-----------------SUPRATEC LTDA-----------------\n"); printf("-----CADASTRO INTERNO DE AGULHAS DE TESTE------\n\n"); printf("DIGITE: \n"); printf(" 1)INSERIR CADASTRO \n 2)INSERIR PEDIDO\n 3)REMOVER CADASTRO\n 4)REMOVER PEDIDO 5)VER ENTREGAS\n 6)FECHAR SISTEMA\n"); switch (_getch()) { case'1': entrada_cadastro(&finfo); break; case'2': entrada_pedido(&linfo); break; case'3': printf("Posicao: "); rewind(stdin); scanf_s("%d", &pos); if (removePosL(&finfo, &info, pos)) printf("Cadastro removido com sucesso!"); else printf("Erro ao remover\n"); break; default: printf("erro\n"); case'4': printf("Posicao: "); rewind(stdin); scanf_s("%d", &pos); if (removePosL2(&linfo, &info2, pos)) printf("Pedido removido com sucesso!"); else printf("Erro ao remover\n"); break; } _getch(); system("cls"); } while (1); system("pause"); return 0; } void entrada_cadastro(LISTA *temp) { int i = 0; agulha info[30]; int op=0; int cont=0; LISTA p; do { system("cls"); printf("Escreva a familia \n"); rewind(stdin); fgets(info.nome_agulha, 30, stdin); printf("Digite a serie (100, 75 ou 50) \n"); scanf_s("%d", &info.serie); printf("Digite a quantidade: \n"); scanf_s("%d", &info.qtde); printf("Digite o preco: \n"); scanf_s("%f", &info.preco); cont++; cont = info.cod; if (insereInicioL(&p, info)) printf("Cadastro realizado com sucesso!\n"); else printf("Erro ao registrar cadastro!\n\n"); printf("Deseja cadastrar mais um item(1-SIM 2-NAO)?\n"); scanf_s("%d", &op); system("cls"); } while (op == 1); } void entrada_pedido(LISTA2 *temp) { int i=0; venda info[30]; int op = 0; int cont = 0; LISTA2 p; do { system("cls"); printf("Digite o nome da agulha:\n"); rewind(stdin); fgets(info.nome_pedido, 30, stdin); printf("Digite a quantidade:\n"); scanf_s("%d", &info.qtde); printf("Digite o valor:\n"); scanf_s("%f", &info.preco_pedido); cont++; cont = info.cod; if (insereInicioL2(&p, info)) printf("Pedido inserido na fila de entrega!\n"); else printf("Erro ao registrar pedido!\n\n"); printf("Deseja cadastrar mais um pedido? (1) SIM (2) NAO\n"); scanf_s("%d", &op); system("cls"); } while (op == 1); } int vaziaL(LISTA *temp) { if (temp == NULL) return -1; if (temp->quant == 0) return 1; else return 0; } int insereInicioL(LISTA *temp, agulha dado) { if (temp == NULL) return 0; int aux; for (aux = temp->quant; aux > 0; aux--) { temp->dados[aux+1] = temp->dados[aux]; temp->dados[aux] = temp->dados[aux - 1]; } temp->dados[0] = dado; temp->quant++; return 1; } int insereInicioL2(LISTA2 *temp, venda dado) { if (temp == NULL) return 0; int aux; for (aux = temp->quant; aux > 0; aux--) { temp->dados[aux] = temp->dados[aux - 1]; } temp->dados[0] = dado; temp->quant++; return 1; } int removePosL(LISTA *temp, agulha *dado, int pos) { pos--; if (temp == NULL) return 0; if (vaziaL(temp)) return 0; if (pos < 1 || temp->quant <pos) return 0; *dado = temp->dados[pos]; int aux; for (aux = pos; aux < temp->quant; aux++) { temp->dados[aux] = temp->dados[aux + 1]; } temp->quant--; return 1; } int removePosL2(LISTA2 *temp, venda *dado, int pos) { pos--; if (temp == NULL) return 0; if (pos < 1 || temp->quant <pos) return 0; *dado = temp->dados[pos]; int aux; for (aux = pos; aux < temp->quant; aux++) { temp->dados[aux] = temp->dados[aux + 1]; } temp->quant--; return 1;
  2. Boa Noite!! Estou tentando fazer uma programação no Arduino em C. O programa controla 3 LEDS através do LDR. Se o ambiente estiver iluminado os 3 Leds acendem, assim por diante. Até o programa funciona bem ! Mas, quando adiciona uma variável de uma porta serial (Serial.read()), quando compilo o LDR não funciona mais. Como se ele não estivesse fazendo o loop. Segue abaixo o programa, até onde ele rodou bem!!! Alguém tem alguma dica? char data; int Sensor = 0; int valorSensor = 0; int Vsensor=0; const int led_alto = 8; const int led_medio = 9; const int led_baixo = 10; void setup() { Serial.begin(9600); pinMode(led_alto, OUTPUT); pinMode(led_medio, OUTPUT); pinMode(led_baixo, OUTPUT); } void loop() { while(Serial.available()) { valorSensor = analogRead(Sensor); if (valorSensor < 300) { apagaLeds(); digitalWrite(led_baixo, HIGH); } if (valorSensor >= 300 && valorSensor <= 350) { apagaLeds(); digitalWrite(led_baixo, HIGH); digitalWrite(led_medio, HIGH); } if (valorSensor > 400) { apagaLeds(); digitalWrite(led_baixo, HIGH); digitalWrite(led_medio, HIGH); digitalWrite(led_alto, HIGH); } } delay(50); } void acendeLeds() { digitalWrite(led_baixo, HIGH); digitalWrite(led_medio, HIGH); digitalWrite(led_alto, HIGH); } void apagaLeds() { digitalWrite(led_baixo, LOW); digitalWrite(led_medio, LOW); digitalWrite(led_alto, LOW); }
  3. Olá ! Estou tentando desenvolver um programa para uma calculadora em C# que leia um polinomio e calcule a derivada e a integral desde polinomio. Fiz o programa, mas consegui apenas as operações básicas da calculadora Alguém teria uma ideia de como fazer? Segue abaixo: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Calculadora.BIM2v._1 { public partial class Calculadora : Form { String polinomio =""; Double value = 0; String operation = ""; bool operation_pressed = false; String derivada2 = ""; Double value2 = 0; public Calculadora() { InitializeComponent(); } private void label1_Click(object sender, EventArgs e) { } private void button12_Click(object sender, EventArgs e) { } private void button11_Click(object sender, EventArgs e) { } private void button_Click(object sender, EventArgs e) { if ((result.Text == "0") ||(operation_pressed)) result.Clear(); //limpa o Text Box operation_pressed = false; Button b = (Button)sender; result.Text = result.Text + b.Text; //Faz aparecer os números no Text.Box } private void button_ClickCE(object sender, EventArgs e) { result.Text = "0"; } private void operator_Click(object sender, EventArgs e) { Button b = (Button)sender; operation = b.Text; value = Double.Parse(result.Text); operation_pressed = true; //guarda os valores da primeira variável até digitar o botão de operação equation.Text = value + " " + operation; } private void button16_Click(object sender, EventArgs e) { equation.Text = ""; switch(operation) // realiza o resultado final quando aperta o botão de igual { case "+": result.Text = (value + Double.Parse(result.Text)).ToString(); break; case "-": result.Text = (value - Double.Parse(result.Text)).ToString(); break; case "/": result.Text = (value / Double.Parse(result.Text)).ToString(); break; case "*": result.Text = (value * Double.Parse(result.Text)).ToString(); break; } //operation_pressed = false; } private void button18_Click(object sender, EventArgs e) { result.Text = "0"; value = 0; } private void result_TextChanged(object sender, EventArgs e) { } private void buttonintg_Click(object sender, EventArgs e) { } private void buttonderv_Click(object sender, EventArgs e) { //derivacao = true; String[] derivada; String derivada2 = ""; //Double value2 = 0; Button b = (Button)sender; result.Text = polinomio; derivada = polinomio.Split('^'); derivada2 = derivada.ToString(); //value2 = Double.Parse(derivada2.ToString()); } } }
  4. Boa Tarde!! Estou tentando fazer uma calculadora que permita calcular integrada ou derivada de um polinomio do tipo ax²+bx+c. Já fiz o programa para as operações básicas, mas não consigo fazer as derivadas e Integrais. Tentei usar o comando .Split para pegar a String parcialmente, mas não deu certo. Se alguém tiver alguma dica ! Fico agradecido! namespace Calculadora.BIM2v._1 { public partial class Calculadora : Form { String polinomio =""; Double value = 0; String operation = ""; bool operation_pressed = false; String derivada2 = ""; Double value2 = 0; public Calculadora() { InitializeComponent(); } private void label1_Click(object sender, EventArgs e) { } private void button12_Click(object sender, EventArgs e) { } private void button11_Click(object sender, EventArgs e) { } private void button_Click(object sender, EventArgs e) { if ((result.Text == "0") ||(operation_pressed)) result.Clear(); //limpa o Text Box operation_pressed = false; Button b = (Button)sender; result.Text = result.Text + b.Text; //Faz aparecer os números no Text.Box } private void button_ClickCE(object sender, EventArgs e) { result.Text = "0"; } private void operator_Click(object sender, EventArgs e) { Button b = (Button)sender; operation = b.Text; value = Double.Parse(result.Text); operation_pressed = true; //guarda os valores da primeira variável até digitar o botão de operação equation.Text = value + " " + operation; } private void button16_Click(object sender, EventArgs e) { equation.Text = ""; switch(operation) // realiza o resultado final quando aperta o botão de igual { case "+": result.Text = (value + Double.Parse(result.Text)).ToString(); break; case "-": result.Text = (value - Double.Parse(result.Text)).ToString(); break; case "/": result.Text = (value / Double.Parse(result.Text)).ToString(); break; case "*": result.Text = (value * Double.Parse(result.Text)).ToString(); break; } //operation_pressed = false; } private void button18_Click(object sender, EventArgs e) { result.Text = "0"; value = 0; } private void result_TextChanged(object sender, EventArgs e) { } private void buttonintg_Click(object sender, EventArgs e) { } private void buttonderv_Click(object sender, EventArgs e) { //derivacao = true; String[] derivada; String derivada2 = ""; //Double value2 = 0; Button b = (Button)sender; result.Text = polinomio; derivada = polinomio.Split('^'); derivada2 = derivada.ToString(); //value2 = Double.Parse(derivada2.ToString()); } } }
  5. Obrigado pelas dicas !!! Vi que você trocou o scanf_s , por scanf apenas, mas o meu compilador não permite o programa com scanf. Existe uma diferença grande entre os dois ? O meu professor nos recomendou o uso scanf_s ou fgets
  6. BOA NOITE !! Fiz um programa na faculdade para cadastro de chapas ! Porém, pelo que vi o programa não está guardando as informações na struct. Quando listo todos os itens ele sempre aparece o último e no busca os dados são sempre os mesmos (do último item que cadastrei). Sou novo em programação, gostaria de uma ajuda !! Obrigado! #include <stdio.h> #include <string.h> #include <stdlib.h> #include<conio.h> using namespace std; struct produto { int codificacao[50]; int quantidade; float preco; float peso; char material[20]; char fabricante[20]; }; void proc_menu() { printf("------------------------- PROGRAMA CADASTRO DE CHAPAS -------------------------\n\n\n"); printf(" MENU:\n"); printf("\n OPCAO 1 - Cadastrar produto"); printf("\n OPCAO 2 - Remover produto"); printf("\n OPCAO 3 - Relatorio de CHAPAS"); printf("\n OPCAO 4 - Busca"); printf("\n OPCAO 0 - Sair"); printf("\n\n Digite sua opcao: "); } void proc_menu_cad_prod() { printf("\n OPCAO 0 - Voltar ao menu inicial"); printf("\n OPCAO 1 - Cadastrar produto"); printf("\n\n OPCAO: "); } void proc_menu_excl_prod() { printf("\n --Excluir produto!--\n\n\n"); printf("\n Opcao 0 - Voltar ao menu inicial"); printf("\n Opcao 1 - Excluir produto"); printf("\n\n Opcao: "); } void proc_menu_lista_prod() { printf("\n --A SUA LISTA DE PRODUTOS--\n\n\n"); printf("\n Opcao 0 - Voltar ao menu inicial"); printf("\n Opcao 1 - Listar todas as chapas"); printf("\n\n Opcao: "); } int main() { int menu; int menu_cad_prod; int menu_excl_prod; struct produto p1[50]; while (true) { system("cls"); proc_menu(); scanf_s("%d", &menu); if (menu == 0) { break; } if (menu == 1) { while (true) { system("cls"); proc_menu_cad_prod(); scanf_s("%d", &menu_cad_prod); if (menu_cad_prod == 0) { break; } if (menu_cad_prod == 1) { int i; for (i = 0; i < 50; i++) { printf("\n --Cadastro de produtos!--\n\n\n"); printf("\n Codificacao : "); scanf_s("%i", &p1.codificacao); printf("\n Quantidade : "); scanf_s("%i", &p1.quantidade); printf("\n Preco unitario : "); scanf_s("%f", &p1.preco); printf("\n Peso(KG) : "); scanf_s("%f", &p1.peso); printf("\n Material : "); rewind(stdin); fgets(p1.material, 50, stdin); printf("\n Fabricante : "); rewind(stdin); fgets(p1.fabricante, 50, stdin); break; } } } system("pause"); } if (menu == 2) { while (true) { system("cls"); proc_menu_excl_prod(); scanf_s("%d", &menu_excl_prod); if (menu_excl_prod == 0) { break; } int i; int excluir; if (menu_excl_prod == 1) { printf("\n Informe o Codigo : "); rewind(stdin); scanf_s("%i", &excluir); for (i = 0; i < 50; i++) { if (*p1.codificacao = excluir) { *p1.codificacao = -1; *p1.fabricante = -1; *p1.material = -1; p1.peso = 0; p1.preco = 0; p1.quantidade = 0; } system("cls"); printf("DADOS APAGADOS COM SUCESSO"); break; } } } system("pause"); } if (menu == 3) { while (true) { system("cls"); proc_menu_lista_prod(); int menu_lista_prod; scanf_s("%d", &menu_lista_prod); if (menu_lista_prod == 0) { break; } if (menu_lista_prod == 1) { int i; for (i = 0; i < 50; i++) { printf("\n \n \n ----LISTA DE CHAPAS---- \n \n \n"); printf("Cod: %i\n", *p1.codificacao); printf("Preco: %f\n", p1.preco); printf("Peso: %f\n", p1.peso); printf("Qtde: %i\n", p1.quantidade); printf("Fabricante: %s\n", p1.fabricante); printf("Material: %s\n", p1.material); break; } } system("pause"); } } if (menu == 4) { system("cls"); int pesquisacod; int i; printf("Digite o codificacao que deseja buscar: "); scanf_s("%i", &pesquisacod); for (i = 0; i < 50; i++) { if (*p1.codificacao = pesquisacod) { printf("\n \n \n ----SUA BUSCA---- \n \n \n"); printf("Cod: %i\n", *p1.codificacao); printf("Preco: %f\n", p1.preco); printf("Peso: %f\n", p1.peso); printf("Qtde: %i\n", p1.quantidade); printf("Fabricante: %s\n", p1.fabricante); printf("Material: %s\n", p1.material); break; } } system("pause"); } } }

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

×
×
  • Criar novo...