-
Posts
28 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por Lucas Akio Fujita Sato
-
-
O que eu fiz até agora é o seguinte :
a)
SELECT x.nome_empregado FROM ocupação x WHERE x.salario > (SELECT avg(y.salario) FROM ocupação.y WHERE x.tipo_de_ serviço = y.tipo_de_ serviço)
SELECT x.nome_coordenador FROM coordena x WHERE (SELECT y.cidade FROM Reside y WHERE x.nome_empregado = y.nome_empregado) CONTAINS(SELECT w.cidade FROM Reside w, coordena z WHERE w.nome_empregado = z.nome_empregado AND nome_coordenador = 'Nestor Silva')
-
Não sei se é o lugar certo para postar. Mas estou com dificuldades em um exercício da faculdade sobre SQL. Se alguem puder ajudar ficaria muito grato
Exercício
Considere as seguintes relações:
reside(nome_empregado, rua, cidade)
ocupação(nome_empregado, nome_empresa, salário, tipo_de_serviço)
coordena(nome_empregado, nome_coordenador)
confeccione as consultas abaixo utilizando a linguagem SQL
a- obter todos os empregados que tem salário maior que a média de salario daqueles que executam o mesmo tipo de serviço
b- obter todos os gerentes que coordenam pessoas em todas as cidades dos coordenados pelo gerente "Nestor Silva"
-
Estou precisando de ajuda com o seguinte exercicio:
Faça um programa que recebe numeros naturais e os armazene em uma pilha, o fim da entrada de dados deverá ser indicado por um numero negativo. O programa deve tambem verificar a ocorrencia de dois nós vizinhos que são primos. Segue o código que eu fiz(provavelmente tudo errado).
#include <stdlib.h> #include <stdio.h> struct celula{ int item; celula * prox; }; celula *Topo = NULL; celula *aux; void push(int valor){ celula *nova_celula = (celula*) malloc(sizeof(celula)); if(nova_celula==NULL){ printf("MEMÓRIA INSUFICIENTE!\n"); } else{ nova_celula->item = valor; nova_celula->prox = Topo; Topo = nova_celula; } } int pop(void){ int valor; celula * temp; if(Topo==NULL) { printf("PILHA VAZIA, NÃO HÁ NADA PARA REMOVER!\n"); return ; } else { valor = Topo->item; temp = Topo; Topo = Topo->prox; temp->prox = NULL; free(temp); return 1; } } int primo(int num){ int i=, count=; for(i=1; i<=num; i++){ if(num%i==) count++; } if(count==2) return 1; else return ; } int main(){ int valor=, x=, count=, y=; while(valor>=){ printf("Digite o valor a ser inserido: "); scanf("%d", &valor); push(valor); } aux = Topo; while(aux != NULL){ aux = aux->prox; while(primo(aux->item) == 1){ pop(); count++; } } if(count >= 2){ printf("Existem nos vizinhos e primos!"); } else{ printf("não existem nós vizinhos e primos!"); } return ; }
-
Estou com problema com um código de fila dinâmica acredito que o problema esteja na criação da fila, porém não estou conseguindo resolver. Segue o código:
#include <stdio.h> #include <stdlib.h> #include <locale.h> //Declarações iniciais typedef struct elem{ int info; struct elem *prox; }tipoElem; typedef struct{ tipoElem *inicio; tipoElem *fim; }Fila; Fila *q; int count=0; //Função para criar fila vazia void cria_fila(){ q->inicio = NULL; q->fim = NULL; printf("FILA CRIADA!"); } //Função para verificar se a fila está vazia int fila_vazia(){ if(q->inicio == NULL) return 1; else return 0; } //Função insere na fila int insere(int valor){ tipoElem *p; p = (tipoElem*) malloc(sizeof(tipoElem)); if(p == NULL) return 0; count++; p->info = valor; p->prox = NULL; if(fila_vazia()) q->inicio = p; else{ q->fim->prox = p; q->fim = p; } return 1; } //Função para remover elemento na fila int remove(){ tipoElem *p; if(fila_vazia()){ printf("FILA VAZIA!\n"); return 0; } else{ count--; p = q->inicio; q->inicio = p->prox; if(q->inicio == NULL) q->fim == NULL; free(p); } return 1; } //Função para consultar primeiro elemento int consulta(){ int valor; if(fila_vazia()){ printf("FILA VAZIA!\n"); return 0; } else{ valor = q->inicio->info; printf("PRIMEIRO ELEMENTO: %d\n", valor); return 1; } } //Função que retorna o tamanho da fila int tamanho(){ return count; } //Função que imprime a fila void imprimir() { tipoElem *ponteiro = q->inicio; if( fila_vazia() ){ printf("FILA VAZIA!\n"); } while (ponteiro != NULL) { printf("%d\n", ponteiro->info); ponteiro = ponteiro->prox; } } //Função que destroi a fila int destruir(){ tipoElem *temp; if(fila_vazia()){ printf("FILA VAZIA!\n"); return 0; } else{ while(q->inicio != NULL){ temp = q->inicio; q->inicio = q->inicio->prox; free(temp); } printf("FILA DESTRUÍDA!\n"); count=; return 1; } } int main(){ int valor=0, op=0; setlocale(LC_ALL,""); //comando para usar caracteres especiais do{ printf("=========MENU=========="); printf("\n(1) CRIAR FILA\n(2) INSERIR ELEMENTO\n(3) REMOVER ELEMENTO\n(4) CONSULTAR TAMANHO"); printf("\n(5) CONSULTAR INÍCIO\n(6) IMPRIMIR FILA\n(7) DESTRUIR FILA\n"); printf("=======================\n"); do{ printf("DIGITE SUA OPÇÃO: "); scanf("%d", &op); }while(op < 1 || op > 6); system("cls || clear"); switch(op){ case 1: cria_fila(); case 2: printf("DIGITE O VALOR A SER INSERIDO: "); scanf("%d", &valor); insere(valor); break; case 3: remove(); break; case 4: printf("QUANTIDADE DE ELEMENTOS DA FILA: %d \n", tamanho() ); break; case 5: consulta(); break; case 6: printf("ELEMENTOS DA FILA:\n"); imprimir(); break; case 7: destruir(); break; } printf("\nDIGITE 0 PARA CONTINUAR: "); scanf("%d", &op); printf("\n\n"); }while(op==0); return 0; }
-
Estou com dúvida no seguinte exercício, vocês podem me ajudar?
O superfatorial de um número N é definida pelo produto dos N primeiros fatoriais de N. Assim, o superfatorial de 4 é sf(4) = 1! * 2! * 3! * 4! = 288. Faça uma função recursiva que receba um número inteiro positivo N e retorne o superfatorial desse número.
Essa foi a função que eu fiz mas está retornando o valor errado:
int superfatorial(int num){ int res, super=1; if(num==0) return 1; else{ while(num >= 0){ res = superfatorial(num-1)*num; super = super * res; num--; } } return super; }
-
Use as funções malloc e realloc para alocar e realocar, respectivamente.
A implementação pode ser feita assim.
#include <stdio.h>#include <stdlib.h>int main(){ int *v, n, i = 0; while(scanf("%d%*c", &n)){ if(!n) break; if(!i){ v = (int *)malloc(sizeof(int) * (i + 1)); }else{ v = (int *)realloc(v, sizeof(int *) * (i + 1)); } if(v == NULL){ puts("Erro na alocacao"); exit(1); }else{ v[i++] = n; } } if(i){ for(n = 0; n < i; n++){ printf("*%d\n", v[n]); } free(v); } return 0;}
Você poderia explicar o algoritmo? Não entendi bem essa parte:
if(!i){ v = (int *)malloc(sizeof(int) * (i + 1)); }else{ v = (int *)realloc(v, sizeof(int *) * (i + 1)); }
A memória só vai ser realocada se o valor digitado for zero?
-
Não estou conseguindo fazer esse exercício, não sei nem por onde começar, me ajudem por favor.
Crie um programa em C para que o usuário digite elementos em um vetor do tipo inteiro. O vetor é inicialmente um ponteiro. Para cada novo valor, uma posição de memória deve ser realocada e testada. O valor digitado deve ser armazenado na posição correta. Esse processo termina quando o usuário digitar, como elemento do vetor, o valor ‘0’ . O vetor deve ser apresentado e em seguida a memória deve ser liberada.
-
Hey '!'
Eu queria ajudar mais qual das funções do exercício tu tens maior dúvida.
Hint: na implementação de tipos typedef geralmente e feita no scobo de arquivo forçando o reconhecimento global.
Queria saber se está certo até agora o que fiz e como fazer a parte do maior e menor saldo e da média. E mais uma coisa rodei o código e ele não está entrando no if
-
-
Não estou conseguindo fazer o seguinte exercício por favor me ajudem.
Construir um programa em C para controlar o saldo bancário de 20 clientes. Os dados importantes são: numero da conta, nome, sexo e saldo. O nome é composto por uma estrutura individual (com os campos nome e sobrenome). Em seguida, o programa deve permitir ler os dados, inclusive o saldo. Calcular e imprimir o saldo médio das mulheres, o saldo médio dos homens, os maiores e menores saldos entre homens e mulheres.
#include <stdio.h>#include <stdlib.h>#define registros 20int main(){ int i, f=0, m=0, j; typedef struct nomes{ char nome[20]; char sobrenome[20]; }tnom; typedef struct clientes{ int numeroconta; char sexo; tnom n; float saldohomem; float saldomulher; }tcli; tcli cli[registros]; for (i = 0; i<registros; i++){ printf("\nInforme o nome do cliente:\n"); scanf("%s", &cli[i].n.nome); printf("\nInforme o sobrenome do cliente:\n"); scanf("%s", &cli[i].n.sobrenome); printf("\nInforme o numero da conta:\n"); scanf("%d", &cli[i].numeroconta); printf("Informe o sexo do cliente:\n"); scanf("%c ", &cli[i].sexo); if(cli[i].sexo == 'f' || cli[i].sexo == 'F'){ printf("\nInforme agora o saldo da conta:\n"); scanf("%f", &cli[i].saldomulher); f++; } else if(cli[i].sexo == 'm' || cli[i].sexo == 'M'){ puts("Informe agora o saldo da conta:\n"); scanf("%f", &cli[i].saldohomem); m++; } } printf("\nA media de saldo entre as mulheres: %f\n", cli[i].saldomulher/f); printf("\nA media de saldo entre os homens : %f\n", cli[i].saldohomem/m); system("PAUSE"); return 0;}
-
Se você abrir o word e digitar um texto qualquer e alinhar ele a direita, vai conseguir entender a lógica desse problema.
Ex:
12345....123456789123......
....12345123456789......123
Imagine que os pontos são espaços em branco, certo.No primeiro texto, justificado a esquerda, você tem uma linha com 5 caracteres, outra com 9 e uma com 3. Então o maior tamanho de linha é 9.
Pra justificar eles a direita, basta preencher com espaços as linhas que tiverem menos de 9 caracteres com (9 - N) espaços em branco... onde N é o tamanho da linha.
Então na primeira linha, que tem tamanho 5, você coloca (9 - 5) espaços em branco no começo.
Na segunda linha, coloca (9 - 9) espaços em branco.
Na terceira linha, coloca (9 - 3) espaços em branco.
Tem que justificar a direita e a esquerda ao mesmo tempo.
-
Pessoal, estou com problemas não estou conseguindo fazer um programa, não sei nem por onde começar. Segue o exercício:
Sua tarefa é escrever um programa para fazer a formatação automática de umtexto. O programa deve receber um texto de entrada com palavras separadas por apenasum único branco e as linhas justificadas a esquerda, o programa transforma o texto em umtexto justificado à direita e também à esquerda. -
Vi não.
Qual erro aparece?
Tente isso aqui:
void Insere(char *str, char A){ int k, N, aux, aux2; N=strlen(str); aux = str[0]; str[0] = A; for(k=1; k>=N; k++){ aux2 = str[k]; str[k] = aux; aux = aux2; } }//fim
Fiz agora mas não programei.
no meu não está lendo o caracter.
E o seu não funciona imprime a string sem a primeira letra.
Edit: Consegui arrumar não sei porque mas não estava lendo o caracter, obrigado pela ajuda.
- 1
-
E se você criar um vetor vazio, concatenar o char e depois concatenar o resto?
é que minha professora fez do jeito que eu postei, então eu queria fazer funcionar daquele jeito, entendeu?
você deu uma olhada no código?
-
mas, não é para usar strcat. E pelo que lembro strcat adiciona uma string o final da outra não no começo.
-
Pessoal, estou com um problema no seguinte exercicio:
Escreva uma função para inserir um caracter no início de uma string e depois imprima a string resultante.
Fiz o programa mas não está funcionando, segue o código:
void Insere(char *str, char A){int k, N;N=strlen(str);for(k=N; k>=0; k--)str[k+1] = str[k];str[0] = A;}//fimint main(){char frase[100], letra;printf("Digite a frase:\n");scanf("%s", frase);printf("\nEntre com um caracter:\n");scanf("%c", &letra);Insere(frase, letra);printf("%s", frase);system("PAUSE");return 0;} -
Faz tempo que eu não entro no site, mas como recebi um email vim verificar, estava cansado de ninguém avaliar as respostas, mas curiosamente o usuário tinha voltado para agradecer, recebi um email e voltei.
Também não resolvo programa para os outros, mas quando a complexidade é alta eu coloco um código para servir de plataforma para os iniciantes.
Segue abaixo:
#include <stdio.h>void minmaxrec(int* array, int length, int& min, int& max){ if(!length) return; if(array[length - 1] > max) max = array[length - 1]; if(array[length - 1] < min) min = array[length - 1]; minmaxrec(array, length - 1, min, max);}int main(int argc, char **argv) { int array[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0}; int min = 100, max = 0; minmaxrec(array, 10, min, max); printf("min: %d, max: %d", min, max); return 0;}
Eu não sei se eu alcancei a técnica TAIL recursion, mas tentei exemplificar ela.
Rodando em: http://coliru.stacked-crooked.com/a/e092efe4501ad012
Porque você usou um & nos argumentos da função, antes de min e max?
EDIT: .Obrigado pela resposta me ajudou muito.
-
Pessoal, não estou conseguindo fazer o exercício abaixo, alguem pode dar uma ajuda?Escreva uma função recursiva maxmin que calcule o valor de um elementomáximo e o valor de um elemento mínimo de um vetor v[0..n-1].
-
Eu fiz a função mas não está funcionando direito. Quando o expoente é positivo retorna o valor certo, mas quando o expoente é negativo retorna sempre o valor 1, independente do valor do expoente.float potencia(float X, int Y){float P=1;int i, T=0;if(Y>=0){for(i=1; i<=Y; i++)P=P*X;}return P;if(Y<0){T= T+(Y*(-1));for(i=1; i<=T; i++)P=P*X;}return 1/P;}
-
Então pessoal, estou com um problema. Preciso criar um programa para calcular potência (inclusive de expoente negativo), e não estou conseguindo. Alguem poderia dar uma ajuda?
-
Obrigado a todos, já consegui com a ajuda de vocês. Por mim pode fechar o tópico.
-
Acho que não é pra usar lista encadeada porque eu nem aprendi isso ainda.
-
Pessoal, estou com um problema no exercício abaixo não sei nem por onde começar, alguem pode me ajudarConsidere o problema: dado n e uma sequência com n números, imprimir asequência na ordem inversa a que foi lida. Fazer isso sem usar vetor.Sugestão: faça uma função recursiva imprime, que lê um número, chama a siprópria se não chegou ao fim da seqüência e imprime o número lido.
-
muito obrigado, deu certo.
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
Minha função não imprime no arquivo .txt
em C/C#/C++
Postado
Estou com um problema minha função cria o arquivo mas não imprime nada nele. segue abaixo o código: