Buscar

Fórum de Discussão C

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Prezados alunos,
Sejam bem vindos ao fórum. Estaremos discutindo aqui os conteúdos apresentados da aula 6 a 8. A participação neste fórum deverá acontecer ao longo do período (calendário), onde deverão apresentar suas ideias, opiniões e discutir os assuntos apresentados nas respectivas aulas de cada fórum. 
Postagens como: ok, valeu, concordo com o colega tal, serão desconsideradas, bem como textos ou códigos de programas copiados da internet.
A maneira mais simples de iniciar a postagem é a partir da leitura dos capítulos sugeridos e dos links apresentados nos mesmos. Durante ou após a leitura você deve postar suas dúvidas, mas para que isto se transforme em pontos, ela deve ser bem estruturada.
Exemplo do que não deve ser feito: O que é uma função? Para que ela serve? Onde posso utilizar?
Estas informações já constam nas aulas e a explicação se tornaria repetitiva. Um exemplo: Quando passo um parâmetro por valor, se o mesmo for alterado na função, modifica a cópia no local enviado? Não, pois a função só recebe o valor, desconhece onde ele está armazenado.
O aluno deverá levar em conta as minhas postagens e as dos colegas antes de fazer as suas, evitando postagens repetidas. Não teremos aqui um conjunto de perguntas e respostas para serem apresentadas, mas sim um “diálogo”, por isso não deixe de entrar sempre no ambiente e ler o que tem sido colocado e sempre que for pertinente deixar sua participação. Não temos um número mínimo e máximo de postagens para atribuição de pontos, mas sim o quanto as mesmas contribuem para a discussão dos assuntos em destaque, porém, dificilmente uma única postagem será o suficiente para que receba a pontuação máxima (2,0). Lembre-se que o tempo de resposta é de 48 horas sem contar domingos e feriados.
Você pode participar de todos os fóruns, mas não é obrigatório. A obrigatoriedade é de um fórum para cada AV. Para AV2 pode escolher entre o C ou D.
Boa tarde Professor (a),
Fiz um resumo da aula 6, gostei muito da aula. Fiz algumas anotações, se tiver algo a acrescentar para os meus estudos, serei grato:
Aula 6:
Conjunto como um agrupamento ou coleção de elementos, ou membros, do mesmo tipo e é, geralmente, indicado por uma letra maiúscula. É comum um conjunto ser representado por uma linha fechada com pontos em seu interior, mas se essa linha for um círculo, poderemos afirmar que usamos o diagrama de Euler-Venn.
Matriz Unidimensional:
Matriz linha ou vetor linha		Matriz coluna ou vetor coluna
Em Programação, as duas matrizes serão declaradas da mesma forma e somente na apresentação delas no display é que faremos diferença, usando os caracteres de controle \n e \t para diferenciar matriz coluna da matriz linha.
Estrutura é uma técnica de programação que permite agruparmos vários elementos em uma mesma variável, podendo ser classificada em homogênea ou heterogênea.
Matrizes são tabelas criadas na memória principal (MP).
string é um vetor de caracteres terminado com um caracter nulo. O caracter nulo tem um valor inteiro igual a zero (código ASCII igual a 0). O terminador nulo também pode ser escrito usando a convenção de barra invertida do C como sendo '\0'. Como precisamos reservar uma posição para o terminador, sempre declararemos o tamanho necessário mais um.
O endereço guardado é o do primeiro caracter, ou do primeiro byte da primeira variável se for uma matriz numérica. Esse é chamado de endereço base e qualquer outro caracter será acessado pelo endereço base mais seu deslocamento em relação a esse endereço se for um vetor de char ou pelo endereço base mais o produto do seu deslocamento em relação a esse endereço pelo tamanho do tipo da variável se for um vetor numérico.
Conclui-se que 0 significa que não existe deslocamento em relação ao endereço-base.
scanf(..., ...) - É usada, sem problemas, para ler variáveis simples, numéricas ou char de um caracter, e para vetores dos tipos citados. Entretanto, apresenta limitação para vetor de char, uma vez que abandona ao encontrar um espaço. Seu uso é ideal quando você tiver certeza de não haver a menor possibilidade de a resposta conter espaço. Tal como: sigla do estado, estado civil, url etc.
gets(...) - Resolve o problema da inclusão de mais de uma palavra, aceitando espaço, mas não tem nenhum controle sobre os números de caracteres armazenados tanto é que vários compiladores alertam para a insegurança do seu uso. Aconselhamos não usá-la.
fgets(..., ...., ....) - Assim como gets(...), lê todos os caracteres, inclusive espaços, mas especifica em um dos parâmetros o máximo de caracteres que poderá ser armazenado. Um dos parâmetros indica através da sigla stdin que a leitura será feita do teclado. Reforçamos que a leitura termina quando se pressiona a tecla enter ou n-1 carcateres tenham sido lidos, justificando a inserção do terminador nulo (’\0’). Muita atenção para a adição de uma nova linha quando o conteúdo digitado não ultrapassar a n-1 caracteres.
Trecho de Saída: Deverá começar com um título e em uma nova tela. Não incluímos no formato básico a limpeza de tela, mas o faremos no ex., pois é sempre bom visualizar a saída sem o diálogo da entrada.
fgetc(stdin); e fflush(stdin); resolvem o problema da limpeza  do buffer.
fgetc(stdin); pode lhe ajudar quando existe somente um caracter no buffer. Como por exemplo, alterna de numérico para char.
fflush(stdin); pode lhe ajudar quando existir a possibilidade de permanecer no buffer, mais de um caracter. Pode ser sempre usado.
Boa tarde Professor (a),
Tenho uma dúvida com relação a resoluções de programas com matrizes. Sempre que vou fazer um programa de matrizes, tenho que discriminar todas essas bibliotecas (#include <stdio.h> #include <stdlib.h> #include <conio.h> #include <math.h> #include <string.h>) ou tem um jeito mais fácil que engloba todas essas bibliotecas em um comando específico?
Fiz um resumo da aula 7, só fiquei pendente nessa dúvida citada acima. Fiz algumas anotações, se tiver algo a acrescentar para os meus estudos, serei grato:
Aula 7:
Matrizes unidimensionais e bidimensionais não são excludentes.
Matriz bidimensional é um vetor de vetores uma vez que cada elemento é um vetor.
Quando dimensionamos uma matriz bidimensional, colocamos ao lado do nome da matriz dois pares de colchetes. Apesar de não trabalharmos nesse estudo com matrizes, com mais de duas dimensões, você precisa saber que, para cada dimensão, será necessário um par de colchetes.
Armazenamento na MP - Matriz do tipo float com 5 linhas e 4 colunas que deverá armazenar três notas e a média, totalizando 20 variáveis.
Matriz de Char - É uma matriz bidimensional que possibilita o armazenamento de vetores de char. Toda matriz para armazenar vetores de char, na linguagem C, é bidimensional, pois o primeiro índice indica a quantidade de elementos e o segundo, o número de caracteres –1 que serão armazenados em cada elemento. Além disso, a matriz de char tem um tratamento diferenciado e, embora seja declarada como bidimensional, será tratada com unidimensional exceto quando precisarmos manipular um caracter.
Sintaxe: char nomeDaMatrizDeChar[númeroDeLinhas][númeroDeCaracteresDeCadaLinha];
Armazenamento de dados em uma matriz bidimensional - O armazenamento de um valor, em uma variável da matriz bidimensional, poderá ser feito através de um comando de leitura ou de atribuição.
Leitura - Quando tivermos que ler valores para uma matriz bidimensional, precisaremos de duas estruturas de repetição. Uma para “varrer” todas as linhas da matriz e outra para “varrer” todas as colunas, ou seja, para cada dimensão da matriz será necessária uma estrutura de repetição.
Trecho de Atribuição - valor é uma expressão que pode envolver constante ou operações com outra(s) matriz(es).
Boa noite Professor (a),
Fiz um resumo da aula 8 e fiquei com uma dúvida, é possível acontecer em uma mesma função uma passagem por referência e uma passagem por valor?
Além disso, fiz algumas anotações, se tiver algo a acrescentar para os meus estudos, serei grato:
Aula 8:
Modularização- Técnica que decompõe um programa em partes menores.
Uma função é um pequeno programa com um objetivo bem definido. Uma função jamais poderá ser criada dentro de outra função.
O protótipo de uma função contém o tipo de retorno da função, o nome da função, seguido de um par de parênteses que podem, ou não, ter parâmetros. É finalizado, obrigatoriamente, com o ; (ponto e vírgula). Ou seja, cabeçalho da função com ; (ponto e vírgula) ao final.
Localização das funções - As funções poderão ser colocadas antes ou depois da main().
Quando uma função é chamada, o fluxo de controle é desviado para essa função e, a partir desse momento, os comandos da função são executados. Ao finalizar, o fluxo retorna ao comando seguinte daquele onde ela foi ativada (se for void) ou, ao ponto de onde ela foi chamada, para funções com retorno. Para que tudo isso seja possível, não poderemos desconsiderar o tipo de retorno e os parâmetros, caso existam.
Tipos de função:
Função sem parâmetros - Não é obrigatório o uso de parâmetros em todas as funções. Sendo assim, nesse primeiro momento, vamos analisar as funções sem parâmetros, pois não necessitam do domínio dos conceitos de passagem por valor ou por referência. Além disso, as funções analisadas não terão retorno.
Função do tipo void - Uma função que não retorna valor algum é chamada tipo void e, esse tipo de função, pode ser considerado, hierarquicamente, “abaixo” da main(), tendo em vista que para ser executada só precisa ser chamada.
Comando Return - Função que retorna valor terá, obrigatoriamente, esse comando no seu corpo. Isso não quer dizer que não poderá ter mais de um comando return no corpo da função. Quando existir múltiplas respostas, poderemos ter vários tipos de retorno.
Variados cabeçalhos para a função main(): void main(void)	void main()	int main(void)	int main()
A main() é uma função chamada pelo sistema operacional e, ao finalizar, retorna, automaticamente, para o SO. Sendo pontual, o return da main() poderia ser dispensável, visto que ele serve para informar que o programa foi executado com sucesso e isso, podemos constatar. Um bom hábito é escrever return 0; ou return EXIT_SUCCESS; (não se esqueça de incluir a biblioteca stdlib.h) em projetos maiores.
Variáveis declaradas fora do escopo de todas as funções são chamadas de variáveis globais. Esse tipo de variável poderá ser manipulado por qualquer função.
Exemplos onde se tem as variáveis declaradas dentro das funções. A esse tipo de declaração, onde as variáveis só são visualizadas nas funções onde foram declaradas, chamamos de variáveis locais.
RESPOSTA DO PROFESSOR:
Crie uma função que permita receber o endereço de uma variável do tipo inteiro, verifique se o conteúdo deste endereço é um múltiplo de 3 ou 5, sendo modifique o conteúdo do endereço para zero do contrário modifique para 1.
A função deverá ainda retornar o conteúdo que estava no endereço recebido.
Apresente aqui o código da função para que possamos discutir.
Boa noite Professor,
Estou mandando em negrito a função que o Sr. pediu junto com o programa inteiro para avaliação, espero que o Sr. goste.
#include <stdio.h>
int verificaMultiplo(int numero){
int auxiliar;
auxiliar = numero;
if(numero%3==0 || numero%5==0){
numero = 0;
} else{
numero = 1;
}
return auxiliar;
}
int main(){
int numero;
int auxiliar;
printf( "Digite um numero inteiro: " );
scanf( "%d",&numero);
auxiliar=verificaMultiplo(numero);
printf( "%d", auxiliar);
}

Continue navegando