-
Posts
3.284 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que Ansi C postou
-
@Pedro Henrique Faria Teixe Em seu curso, ou por conta própria, estudou o uso de funções para resolução de problemas ? " Dividir para conquistar " (O príncipe, Maquiável) ____________________________
-
Boa tarde, @Pedro Henrique Faria Teixe Você não conseguiu se quer esboçar nenhuma linha de código para solução de problema? Seria interessante que sim, assim teríamos por onde começar o estudo da resolução. __________________________________
-
@santos container Estaremos aqui Bons Estudos.
-
Anteriormente nas faculdades, C foi por muito tempo a linguagem de programação de entrada, ou seja, no ensino de algoritmos e programação inicial, atualmente Portugol que ocupa esta cadeira. Usando um pseudocódigo estruturado como portugol nas aulas inciais de logica ganhasse em entendimento, parti para linguagem de programação orientada a objeto depois de ensino da lógica não é o desperdício quanto ensinar uma linguagem totalmente diferente, C e C++ são irmãs, sim e diferentes em tudo. Em C++, por exemplo usaremosuma cadeira, todas as propriedades e métodos estão prontos para serem usados conforme a necessidade do arquiteto, ou decorador, já em C, não é bem assim, já que o arquiteto e/ou decorador, aqui dentro de minha analogia, vai ter que criar do nada seu OBJECT, sua CADEIRA, e enfim usar uma cadeira em C'11, significa criar para depois usar. E.i: string Object( 128 ), é diferente de char Array[ 128 ], em C as coisa são mais primitivas, pois dentro de um string Object há uma char Array[ ] e muito mais, é basicamente estudar a historia da linguagem C++ ao embarca no autoconhecimento de C, ou estudo das células na biologia. "C++ é o leite condessado de C" @Aldo Jean Referência CW: A importância e as vantagens de saber programar em linguagem C _____________________________
-
Opção para minimizar funções no compilador DEV C++
Ansi C respondeu ao tópico de borges.gui em C/C#/C++
Provável que seja um problema no arquivo de configuração, achar estas sintonias é bastante chato, causa uma ansiosidade e a bendita opção fica invisível ao nossos olhos, então simplesmente reinstale o IDE, quando o fizer, se o fizer fique atento a opção que limpa as configurações anteriores. ________________________________ -
Bom dias a Todos; 'Poxa vida'! Não se trata disso que está pensando, o colega @1freakday quis exprimir que no C ainda é a linguagem mais imperativa, por razão de fornecer soluções bem simples e adequadas para maioria das questões de programação, basta para isso compor um pouco de código. @souLLLAinda não encontrou solução no C++, então mostraremos em C' 11, assim bem como referências de leitura obrigatórias. _____________________________
-
Boa tarde para Todos; Obrigado, ler estas declarações me deixa feliz! Seu curso é de programação com linguagem C++. No que toca a sintaxe C plus plus não tenho nada, nada obstante se lhe despertar o interesse acerca da sintaxe do puro C; O C estrutural e procedural a origem de tudo, recomendo-te; Deitel - C, Como programar - 6ª edição, há 692 páginas envolvidas de apontamentos e exercício de problemas puro e aplicados usando C'11 (ou puro C). Podendo baixar no link clicando no nome. Pela necessidade! Isto mesmo se há necessidade de que alguma informação externa venha a processa na entrada do programa, então esta declaração é mais completa porque atenderá a demanda. Em contraponto a isto, se não há necessidade de linha de comando na arrancada do programa então não há o porquê de usarmos a versão de 'a declaração mais completa'. Não, pois será sempre um desperdício nas circunstâncias que não há necessidade. Muito bem, e poderá sempre que necessário ter nossa ajudinha. Obrigado @santos container ____________________________________________________________________________ A função PRINTF, é parte do ouput /input da biblioteca de funções <stdio.h> da linguagem C. O equivalente encontrasse em C++ no <iostream> com função COUT. Tem-se o resultado desta permuta entre as sintaxes para declaração acima, algo tal qual assim: #include <iostream> #include <string> string base_type( unsigned base ); cout <<"Converting 10x"<<decimal<<" to "<<base_type( base )<<intBaseConvert<< endl; BUFF, sim, tratasse de uma palavra qualquer muito usado por para nomear instâncias voláteis, você pode ver que alguns programmers utilizam para mesmo propósitos variáveis de outros nomes, a exemplo: aux, assistant (...) entre outras mais que você também deve ter conhecimento. Com relação a isto, sou categórico, não dou ouvidos, minhasolução para os problemas podem ter ambas as sintaxes, salvo as condições que me for impostas, ou seja, me foi atribuído apenas preposições e objetos da linguagem C++, caso isto não esteja explicito; Permutar entre ambas me propulsionará soluções muito mais criativas. Pessoalmente, tudo que diverge disso é corporativismo e regimentação azêmola, acredito que C não é totalmente ultrapassada, pelo contrario antes, além do mais antes C++ tornasse binário seus códigos 'virão' C, e de C para assembly e daí por diante até finalmente 0s e 1s. Então estaria no mínimo saltando uma etapa. Obrigado @Aldo Jean ____________________________________________________________________________
-
[...] int intSlot = 1, intBaseConvert = 0; unsigned int buff = decimal; [...] intSlot nos diz abertura ou casa, peqguemos por exemplo o número decimal 255, ela abita casas e estas casa são decimais, e se decompomos seguindo as regras decimais temos: 2 vezes 100 + 5 vezes 10 + 5 vezes 1. Após cada VEZES, XX é uma potencia de dez que organiza a magnitude unidades menores que a base, você ver 10 elevado 2 = 100, 10 elevado 1 = 10 e 10 elevado 0 = 1. Assim sendo, as demais bases devem ocupar o mesmo esquema que permitirá tanto a impressão quando o réplica do valor convertido. Observe: Convertendo 81 decimal para base 9: decimal = 81, intSot = 1, intBaseConvert = 0; buff = decimal; apenas para operar com outra variável que não decimal. NO LOOP WHILE: _____________________________ 1 laço: buff = 81 logicamente TRUE intBaseConvert = ((81 resto de / 9 vezes 1) + 0); primeira casa = 0 buff = 81 dividido 9; intSlot = 1 vezes 10; ____________________________ 2 laço: buff = 9 logicamente TRUE intBaseConvert = ((9 resto de / 9 vezes 10) + 0); segunda casa = 0 buff = 9 dividido 9; intSlot = 10 vezes 10; ____________________________ 3 laço: buff = 1 logicamente TRUE intBaseConvert = ((1 resto de / 9 vezes 100) + 0); terceira casa = 1 buff = 1 dividido 9; será igual a 0 intSlot = 100 vezes 10; _____________________________ 4 laço: buff = 0 logicamente FALSE intBaseConvert = ((1 resto de / 9 vezes 100) + 0); terceira casa = 1 buff = 1 dividido 9; será igual a 0 intSlot = 100 vezes 10; Fim da conversão. Resultado 81 na base 9 é 100. Se fosse de nosso interesse fazer a réplica deste valor para base decimal, faríamos assim: 0 vezes 9 elevado 0 + 0 vezes 9 elevado 1 + 1 vezes 9 elevado 2 1 * 0 + 9 * 0 + 81 * 1 81 adicionado 7 minutos depois Observando bem as bases para representação de magnitudes possuem siglas de no início vem nas escritas E.i: hexadecimal é 0xFFF, Binário 0b1111, enfim o proposito é criar um string que acompanhe a conversão. Contudo em nada ter haver com processo de conversão em si.
-
A que ponto teu professor esclareceu o proposito da função main, suponho que lhe foi dito que main é função principal de qualquer programa. É um clichê esta definição, e por isso, mais sucinta e 100% mencionada desta forma: Main pode ser escrita com outros cabeçarios o que lhe confere outras funções por exemplo; int main(int argc, char *argv[]) { return (0); } Escrita como acima ela admite linha de comando E.i: no atalho [meuPrograma.exe "Faça isso" "Faça Aquilo" "Etc"], já deve ter visto algo assim no Counter Strike por exemplo. O void como parâmetro do main, diz explicitamente que este código não possui parâmetros de entrada ou linha de comando, independente de sua arbitraria chamada void irá dispensar qualquer tentativa. Referência UFSC - Curso de C :: Os argumentos no main
-
Estou bem aqui...
-
Se este código envolve todos os operadores aritméticos e sistematicamente loops, então um iniciante é lv 4 quando entendeu.
-
@santos container Boa tarde, e a todos Como mencionado há necessidade de uma função que seja flexível na base de conversão, portanto, abaixo segue um programa que lhe traz a possível solução sem muitos requintes, entretanto, não deixe de fazer perguntas sobre as etapas do programa. Não inclui manual trace de caso pensado. Code /* File: tryTask,Author Mauro Britivaldo, date 12-11-2016 */ #include <stdio.h> /* Universal Convert */ int decimal_to_convert( unsigned int decimal, unsigned int base ); char* base_type( unsigned base ); int main( void ) { /* Test */ (void)decimal_to_convert( 255,2 ); return 0; } int decimal_to_convert( unsigned int decimal, unsigned int base ) { if( base > 9 )return decimal; int intSlot = 1, intBaseConvert = 0; unsigned int buff = decimal; while( buff ) { intBaseConvert = ((buff % base * intSlot) + intBaseConvert); buff = buff / base; intSlot = intSlot * 10; } printf( "Converting 10x%d to %s%d\n", decimal,base_type( base ),intBaseConvert ); return 0; } char* base_type( unsigned base ) { switch( base ) { case 2: return "2x"; case 3: return "3x"; case 4: return "4x"; case 5: return "5x"; case 6: return "6x"; case 7: return "7x"; case 8: return "8x"; case 9: return "9x"; } return ""; }
-
A solução para conversão DECIMAL to BINÁRIO eu entendi, só não entendi se após a primeira solução as demais soluções devem vir de BINÁRIO to X, ou seja, um vez convertido para binário será de binário para as outras bases conforme as opções do menu.
-
Também não sei qual o emprego desta variável, o mais presumível é que seja produto de um cópia e cola da função anterior. Fato é que ignorei a variável inútil, deixando" o copilador emitirá um Warning".
-
Boa dia void Imprimir_todos(struct rgCadFun Cadastro) { int matric, i; for(i=0; i < Cadastro.controle; i++) { printf("Numero da matricula: %d\n", i+1); printf("Nome: %s\n", Cadastro.vCadFun[i].nome ); printf("Data de Nascimento: %d / %d / %d \n ", Cadastro.vCadFun[i].dtNasc.dia, Cadastro.vCadFun[i].dtNasc.mes, Cadastro.vCadFun[i].dtNasc.ano); printf("Cargo: %s\n", Cadastro.vCadFun[i].cargo); printf("CPF: %s\n", Cadastro.vCadFun[i].cpf); }
-
Programa vai para outro switch sem eu pedir.
Ansi C respondeu ao tópico de Jonathan Guarnieri em C/C#/C++
Boa noite, Às vezes, basta apenas dividir o código e tornasse possível encontrar a maioria dos problemas. Por exemplo; Crie uma função para cada tipo de quadrilátero(quadrado, retângulo, trapézio). O mais importante que quero lhe falar é que, tire todo este código da função main "não é boa prática" entupir deste jeito. Sei que é comumente encontrado nos códigos de iniciantes e principalmente aqui no fórum , entretanto é sempre bom ter um abordagem mais profissional mesmo em exercícios. A função main deve conter apenas funções e nenhum bloco de código, só declarações sem definir nada, esta é um boa prática de programação que regulariza a escrita de um código fácil de depurar. Referência MDS, A função main e execução de Programa, Microsoft 2016. -
Eu suponho que seja apenas uma referência de apostila para quem está a procurar fonte de conhecimentos a cerca de C Sharp.
-
Não é erro na linguagem, e sim no copilador ou IDE. Soluciona rapidamente criando um pasta no diretório C:\projetosC, e refaça o seu programa neste diretório, hipoteticamente não se ver problema algum que empeça de funcionar corretamente, vai funcionar.
-
Com licença, somente quero fazer um parecer com relação a declaração acima o que de fato acontece com a expressão (&*b2), e no que está errada? Esta construção ou expressão é uma redundância, já que o objeto b2 é do tipo ponteiro , isto significa que seu valor é uma posição local na memória do primeiro byte do bloco. Quando escrito desta forma, o ponteiro tornasse objeto, e depois, objeto 'vira' ponteiro. ponteiro ↔ objeto ↔ ponteiro, não significa dizer há erro, mas sim, etapas extras. Por ter ficado obscurecido a razão das coisas acima, no que toca a expressão há necessidade de uma observação especial, por este o motivo relatei no instante. Referência CASAVELLA, Eduardo. Escola de Programação INTELECTUALE: Ponteiros Em Linguagem C, 2016
-
for (i = 0; i < 3; i++) { for ( f = 0; f < strlen(nome[i]); f++) { if ((nome[i][f] == 'a') || (nome[i][f] == 'A') || (nome[i][f] == 'e') || (nome[i][f] == 'E') || (nome[i][f] == 'i') || (nome[i][f] == 'I') || (nome[i][f] == 'o') || (nome[i][f] == 'O') || (nome[i][f] == 'u') || (nome[i][f] == 'U')) { vogal++; } else if (nome[i][f] != ' ') { //vogal++; //As vogais estão em cima, aqui é as consoantes. } } //Imprimir resultado de vogais. printf( "Nome: %s, tem %d vogais.\n", nome[i], vogal ); vogal = 0; } @Guilhermee32
-
Vamos nessa, entre parenteses temos características para o TIPO de dados, e a ESTRUTURA que vai ser usada. O tipo string e a estrutura será um vetor, na verdade são 3x vetores, já que exame pede 3x nomes, e cada nome é um vetor. O primeiro procedimento feito por você, foi declara a estrutura, e as instâncias de entrada de dados, vou destaca-las abaixo como segue em seu código. Aproposito fiz alguns ajustes que considero básico e interessantes, observe: char nome[3][70] = { '/0', }; int vogal = 0, consoante = 0, i, f; for (i = 0; i < 3; i++) { printf("Informe o %dº nome: ", ( i + 1 ) ); scanf(" %s", nome[ i ]/*Está ligando i-nomes, e gravando.*/ ); while( getchar( ) != '\n' )continue; //Limpa o buff para próximo nome; } No segundo momento você avalia as vogais, vou fazer mesma coisa que fiz antes: for (i = 0; i < 3; i++) { for ( f = 0; f < strlen(nome[i]); f++) { if ((nome[i][f] == 'a') || (nome[i][f] == 'A') || (nome[i][f] == 'e') || (nome[i][f] == 'E') || (nome[i][f] == 'i') || (nome[i][f] == 'I') || (nome[i][f] == 'o') || (nome[i][f] == 'O') || (nome[i][f] == 'u') || (nome[i][f] == 'U')) { vogal++; } else if (nome[i][f] != ' ') { //vogal++; //As vogais estão em cima, aqui é as consoantes. } } } Para nomes[ i ]; estamos a conectar com o vetor, mais especificamente o ponteiro do primeiro elemento do vetor. Para nomes[ 0 ][ 0 ] estamos a conectar com o primeiro nome do 'vetor' bem como a sua primeira letra. Que isso fique bem claro. Referências Cprogressivo, STRINGS E CARACTERES, 2016 Cprogressivo, O QUE SÃO VETORES COMO DECLARAR E QUANDO USAR, 2016
-
Boa tarde, você já fez uma tentativa, ou seja, tem algo inicialmente para que possamos ajudar servido de base? Resposta for SIM, poste-nos e iremos ver. @Guilhermee32
-
UNSIGNED X SIGNED Independente do sistema e/ou arquitetura os atuais sistemas computadorizados utilizam se de duas notações para números; unsigned quer dizer sem sinal, signed que convencionalmente não é declarado pois existe por padrão implícito e quer nos diz que, é com sinal, logo é o oposto de seu antagonista unsigned. Vamos adentrar um pouco mais na memória e fazermos uma representação gráfica de byVal especificamente, como sendo uma variável declarado do tipo campo dentro das diretrizes impostas por sistemas 16 bits. A imagem acima nos ilustra o momento e como função cout interpreta este field na memória. Quero dizer é um campo mais no instante da tarefa de exibir na tela se captura e a torna variável, assim sendo, toda variável inteira com sinal tem o pri- meiro bit da sequência o indicador da existência de sinal negativo, "regra do 1 bit". Quando declarado como sendo signed este bit sinaliza, ou seja é inteiro que admite negativo, quando explicitamente declaramos unsigned estamos dizendo para o interpretador que está variável dever assumir valores somente positivos e ignore a regra do 1º bit. Avaliando o problema acima, o único bit da sequência, e por tanto o primeiro é 1, se não é definido unsigned, então será negativo, contrário será sempre positivo. @Ariel98 Referencias / Leitura: Arquitetura 16 bits. [cout] Função exibir C++ Qual a finalidade do unsigned no C. WIKIPEDIA: Binário Sinalizados 2016
-
/* * Como faço para chamar a segunda função é dizer se o resultado da multiplicação feita * pela outra função é impar ou par??? */ #include<stdio.h> int multiplicar(int num1,int num2) { int resultado = (num1 * num2); return resultado; } parimpar(int num1) { if (num1 % 2 == 0) printf("Esse numero é PAR"); else printf ("Esse numero é IMPAR"); } void main () { int a,b; printf("Digite o primeiro numero: "); scanf("%d", &a); printf("Digite o segundo numero: "); scanf("%d", &b); printf(" O resuldado da multiplicacao é: %d", multiplicar(a,b)); } Teu Código. Bom dia Basta nós chamarmos a função 'dentro' da outra função; Assim teremos um função que retorna argumento, para função que contém o parâmetro ou adicione uma variável que recebe o resultado e tornasse argumento da função. No primeiro caso teremos a função mãe e função filha, a proposta é que uma espere pela execução e finalização por retorna da tarefa da outro. E.i: Função Mãe(Função FIlha(...) ); void exibirSoma( int valInt ); int calSoma( int parcInt, int parcInt ); exibirSoma( calSoma( 200,55 ) ); No segundo caso teremos a função mãe e função filha, a proposta é que uma espere pela execução e finalização por retorna da tarefa da outro. E.i: byVal = Função Mãe( ... ); Função FIlha( byVal ); void exibirSoma( int valInt ); int calSoma( int parcInt, int parcInt ); int byVal; byVal = calSoma( 200,55 ); exibirSoma( byVal ); Com estes exemplos poderá rever o seu código, se ainda restar dúvida, nos perguntes mais.
-
Contar vogais usando função, com recursividade
Ansi C respondeu ao tópico de Cristiano Nogueira em C/C#/C++
Bom dia, O exercício é converter este fragmento para solução com recursividade, ou podemos passar outra solução para o problema principal, mas que utilize apenas recursividade??
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