Buscar

LOGICA DE PROGRAMCAO 2

Prévia do material em texto

ESTUDO DIRIGIDO –AULAS_6_8 
 AULA 6 
RETIFICANDO: 
Sequência da TELA 13, segunda tela : 
• Atribuindo valor a um vetor de char com mais de um caracter: 
Onde se lê: int frase[]=”Linguagem de Programação I”; 
Leia-se: char frase[]=”Linguagem de Programação I”; 
 1) Com se declara uma variável que irá armazenar um nome, ou um endereço , ou 
uma profissão? Dê, também, um exemplo. 
2) Explique por sempre temos que reservar mais uma posição quando declaramos um 
vetor de char? 
3) Na linguagem C, o nome de um vetor é um endereço. Sendo assim, o primeiro 
caractere de um vetor de char, ou o primeiro byte da primeira variável de um vetor 
char está nesse endereço. Como ele é chamado? 
4) Qual seria a justificativa para ser 0(zero) o índice do primeiro elemento de um 
vetor? 
5) Se o endereço de um vetor declarado assim: int NUM[5]; for 10000(em decimal), 
qual seria a expressão que calcularia o endereço da quarta variável desse vetor, 
sabendo-se que o tipo int ocupa quatro posições de memória para cada variável? 
6) Se o endereço de um vetor declarado assim: double a[30]; for 25000(em 
decimal), qual seria a expressão que calcularia o endereço da décima variável desse 
vetor, sabendo-se que o tipo int ocupa quatro posições de memória para cada variável? 
7) Existem várias funções para se podem ler para uma variável do tipo vetor de char, 
mas sempre ficamos em dúvida quando usar scanf(...) e quando usar fgets(). Explique, 
sucintamente e exemplifique. 
8) A função fgets será usada também para ler de arquivos. Onde está na sintaxe que 
está lendo do teclado? 
9) Na linguagem C, podemos atribuir de declarar um vetor, ao mesmo tempo. 
Exemplifique para um vetor numérico do tipo float que armazena alturas de 7 pessoas. 
10) Na linguagem C, podemos atribuir de declarar um vetor, ao mesmo tempo. 
Exemplifique para um vetor do tipo numérico do tipo int que armazena idades de 4 
pessoas. 
11) Declarei um vetor para armazenar matrículas de 150 alunos. Como seria um trecho 
para permitir a entrada, via teclado de todas essas matrículas, sabendo que o vetor 
declarado é do tipo int, de nome MAT? 
12) Declarei dois vetores de nomes R1 e R2, para armazenar valores de resistores de 
18 circuitos em série. Como seria um trecho para permitir a entrada, via teclado de 
todos esses valores? 
13) Declarei um vetor de char para armazenar um nome com até 39 caracteres, 
obrigatoriamente. Como seria a declaração desse vetor que deverá ter nome NOME e 
o trecho de entrada? 
14) O que significa limpar o buffer do teclado e quando isso acontece? Que funções 
podem ser usadas, e quando, para resolver esse problema? 
15) Tenho um vetor do tipo float, de nome CR e de tamanho 50 que armazena o CR 
de 50 alunos. Como seria um trecho para exibir todos os CRs, em cada linha? 
16) Tenho um vetor do tipo char, de nome sexo de tamanho 10 que armazena o sexo( 
F ou M) de 10 funcionários. Como seria um trecho para exibir todos os sexos na 
mesma linha tabulados? 
17) Tentei copiar uma cadeia de caracter para um vetor de char usando o comando de 
atribuição tipo: resposta =”TUDO CERTO” e não foi permitido. Como posso resolver 
esse problema? 
18) Quando preciso ordenar dois números, uso os operadores > ou <. Tentei fazer isso 
com vetor de char tem horas que dá certo, tem horas que não. Por que será? E como 
poderei comparar para ordenar? 
19) Precisava converter todas as letras de um vetor de char declarado da seguinte 
forma: char palavra[40]; . Como fazer um trecho para converter todas as letras para 
maiúsculas, sabendo-se que não é permitido usar a função strupr()? 
20) Quando usamos a função fgets, na maioria das vezes, o caracter \n é incluído no 
vetor. Como poderemos retirar esse caracter? 
AULA 7 
1) Como se declara uma matriz bidimensional para armazenar 13 salários de 10 
funcionários e outra matriz para guardar os nomes dos 10 funcionários? 
2) Com se declara uma matriz bidimensional para armazenar área do terreno e área 
construída de 100 casas e outra matriz para guardar os endereços das 100 casas? 
3) Foi declarada uma matriz assim: float N[4][3]; . Se você precisasse saber o 
endereço da variável que se encontra na segunda linha e segunda coluna, como seria a 
expressão matemática para calcular esse endereço, sabendo-se que o endereço base 
da matriz e 2293392? 
 4) Por que para lermos valores para uma matriz bidimensional numérica, 
precisaremos de duas estruturas de repetição? 
5) Por que para lermos valores para uma matriz bidimensional do tipo char, só 
precisaremos de uma estrutura de repetição? 
6) Foi declarada uma matriz assim: int not[4][10]; . Como seria o trecho para ler 
valores do teclado para essa matriz? 
7) Foi declarada uma matriz assim: char siglas[100][3]; , sabe-se que serão 
digitadas siglas dos estados brasileiros, inclusive o distrito federal. Como seria o trecho 
para ler valores do teclado para essa matriz? 
8) Foi declarada uma matriz assim: char enderecos[100][41]; .Sabe-se que serão 
digitados endereços completos. Como seria o trecho para ler valores do teclado para 
essa matriz? 
9) Tenho uma matriz assim declarada: float MATRIZ[50][5]; cujos elementos 
precisam ser inicializados com 1. Como você faria um trecho para conseguir isso? 
10) A professora de LPI pediu para que fosse construído um trecho para contar 
quantas notas maiores ou iguais a 9 se encontram em uma turma com 10 alunos onde 
cada um fez duas provas. Digitar toda hora fica meio demorado. Escreva uma linha 
que declare e a atribua 20 notas a uma matriz de nome NOTAS, 
bidimensional. 
11) Um engenheiro de petróleo e gás estava desenvolvendo um programa que dizia 
respeito aclassificações para os poços de petróleo segundo a direção da 
perfuração. Escreva uma linha que declare e atribua a uma matriz de nome 
POCO nomes de três poços, sabendo-se que nenhum nome tem mais de 19 
caracteres. 
12) Foi declarada uma matriz assim: char siglas[8][3]; e que já estão armazenadas as 
siglas dos estados brasileiros, inclusive o distrito federal. Como seria o trecho para 
exibir tabuladas todas as siglas com título? 
13) Foi declarada uma matriz assim: char enderecos[10][41]; e que já estão 
armazenados os endereços. Como seria o trecho para exibir todos os endereços, 
um em cada linha com título? 
14) Um engenheiro estava desenvolvendo um programa e, nos testes, percebeu que, 
mesmo pedindo para digitar no máximo 20 caracteres porque tinha declarado uma 
matriz assim: char TIPOS[10][21] que isso era suficiente porque o usuário poderia 
digitar mais e o resto ficar no buffer. Leu sobre um trecho de proteção para obrigar o 
usuário a digitar novamente enquanto ele digitar tipo com tamanho maior do que 
20. Como seria esse trecho? 
15) Um engenheiro estava desenvolvendo um programa e, nos testes, percebeu que 
ao usar a fgets() o caracter \n é incluído ao final. Isso não é bom porque não se 
consegue exibir dados na mesma linha. Sabendo-se que ele tinha declarado uma 
matriz assim: char TIPOS[10][21]. Como seria um trecho para retirar de todos os 
nomes dessa matriz o \n? 
16) Um professor já tinha armazenado os nomes dos 20 alunos na matriz do tipo char 
e de nome ALUNOS[20][31] e na matriz float NOTAS[20][4] as notas das três provas e 
da média e gostaria de exibir os nomes na 1ª coluna e a primeira nota na 33ª coluna, 
a segunda nota na 41ª coluna, a terceira nota na 49ª coluna e a média na 57ª coluna. 
O problema era o tamanho diferente dos nomes. Como você construiria um trecho 
para exibir os conteúdos das duas matrizes como foi pedido? 
 AULA 8 
1) Qual o conceito de Modularização? 
2) Conceitue função e responda:Existe um númeromáximo de funções para compor 
um programa? 
3) O que significa definir uma função? Fale sobre cada elemento da função. 
4) Qual a diferença entre protótipo e o cabeçalho de uma função? 
5) O que significa prototipagem? 
6) Temos função com retorno e função sem retorno( void) . Para onde retorna o fluxo 
após a execução da função em ambos os tipos? 
7) O que significa dizer que a função é do tipo void e não tem parâmetros? Alguma 
vantagem para quem está aprendendo a definir função? 
8) Como é chamada um função do tipo void? 
9) Conceitue passagem por parâmetro. 
10) Conceitue passagem por referência. 
11) Como é feita a chamada de uma função que retorna valor? 
12) Analise o protótipo abaixo, informando: tipo de retorno, nome da função, 
quantidade de parâmetros , tipos e nomes deles. 
float TESTE (float a, float b, int cont); 
13) Analise o protótipo abaixo, informando: tipo de retorno, nome da função, 
quantidade de parâmetros , tipos e nomes deles. 
float IMC(float peso, float altura); 
14) Analise o protótipo abaixo, informando: tipo de retorno, nome da função, 
quantidade de parâmetros , tipos e nomes deles. 
int MM(int conta1, int conta2); 
15) Li que o comando return poderá estar presente mais de uma vez em uma função, 
mas inclui uma linha do tipo: return a, b; e está dando erro na minha função. Por que 
será? 
16) Qual a diferença entre uma variável local e uma variável global para todas as 
funções definidas em um programa? 
17) Por que, quando passamos um vetor como parâmetro, podemos alterar o conteúdo 
das variáveis desse vetor? 
18) Analise o protótipo, identificando o tipo de retorno, nome da função, quantidade de 
parâmetros, os nomes e tipos deles: double ALTURAS(double ALT[], int tam); 
19) Analise o protótipo, identificando o tipo de retorno, nome da função, quantidade de 
parâmetros, os nomes e tipos deles: void PRECOS(double precoCompra[], double 
precoVenda[] int tam); 
20) Vi o seguinte protótipo de uma função: int contaPar(int NUM[], Int TAM); . 
Sabe-se que a finalidade dessa função é retornar a quantidade de números pares que 
estão no vetor e que TAM é o tamanho do vetor. Como seria a definição dessa função?

Continue navegando