-
Posts
8 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por Fabio Ramalho
-
-
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;
-
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); }
- 1
-
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());
}
}
} -
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()); } } }
-
Valeu !!!! Programa rodando perfeito !
-
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
-
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
Problema ao remover item de lista
em C/C#/C++
Postado
Galera alguém pra dar uma força ???