Buscar

AULAS LINGUAGEM E PROGRAMAÇÃO ASSUNTOS

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 16 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

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 6, do total de 16 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

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 9, do total de 16 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

11/9/2015
1
Linguagens de 
Programação
Prof. Dr. Paulo Nazareno Maia Sampaio
Aula 5
SUMÁRIO
2 Linguagens de Programação
� Estruturas de dados: Vetores
11/9/2015
2
Estruturas de Dados
� Os tipos primitivos (inteiro, real, literal e lógico) não são 
suficientes para representar todos os tipos de informação.
� Particularmente quando temos mais de uma informação relacionada. 
Ex: Lista dos nomes dos alunos de uma sala, endereço de alguém 
etc.
� Utilizaremos os tipos primitivos para construir outras estruturas 
de dados mais complexas.
Linguagens de Programação
Vetores
� É a forma mais simples de estruturar um conjunto de
dados;
� São estruturas de dados unidimensionais homogêneas;
� A quantidade de elementos deve ser definida no momento
da declaração;
Linguagens de Programação
11/9/2015
3
Vetores (cont´)
� São estruturas estáticas;
� Os elementos têm ordinalidade, cada um pode ser
identificado pela sua posição;
� Cada elemento do vetor, por meio do seu índice, pode
ser acessado como uma variável individual.
8,5 7,0 9,0 6,5 8,0 6,0 ...
1 2 3 4 5 6 ...
Vetor Notas
Escreva (Notas[1]); 
Escreva (Notas [3]); 
Linguagens de Programação
Vetores (cont´)
�� Permitem a manipulaPermitem a manipulaçãção de um conjunto de o de um conjunto de 
informainformaçõções de um mesmo tipo primitivoes de um mesmo tipo primitivo
�� DeclaraDeclaraçãção :o :
<lista-de-variáveis> : vetor "["<lista-de-intervalos>"]" de <tipo-de- dado>
Onde: Onde: <intervalo>: <valor-inicial> .. <valor-final>
Exemplo :Exemplo :
Um vetor com nome Um vetor com nome ““dadosdados”” de 40 poside 40 posiçõções reais teres reais teráá a a 
seguinte declaraseguinte declaraçãção.o.
NNome_variavel: vetor [1 .. 40] de realome_variavel: vetor [1 .. 40] de real
Linguagens de Programação
11/9/2015
4
Vetores (cont´)
• Declaração:
tipo nomedovetor[DimMax];
• Em C, os índices dos vetores variam de 0 a DimMax-1
(Isto é importante!!!)
• Exemplos de declarações:
float NOTAS[100];
int Conjunto[50];
char Nome[15];
• Acesso:
if(NOTAS[99] )== 10.0) {....}// NOTAS[100] É ERRO!
while (Conjunto[49] > 10) {....}//Conjunto[50]!!!
Nome[14] = ‘ ‘; // Nome[15]!!!
Linguagens de Programação
Vetores (cont´)
Vetores Numéricos
• Recebem valores inteiros, de ponto flutuante 
(Precisão Simples) e de ponto flutuante (Precisão 
Dupla)
• Declaração e Inicialização (feitas conjuntamente)
int Vet[4] = {0,0,0,0}; /* inicializa todos com 0*/
int Vet[4] = {-1,-1}; /* inicializa os dois primeiros elementos com 
-1*/
float V[3] = {1.0f, 1.1f, 1.5f}; /* inicializa todos com const. tipo 
float*/
int A[ ] = {0,0,0,0,0,0,0,0}; /* a dimensão assume o tamanho da 
inic.*/
• A declaração e inicialização conjuntas é útil para 
Linguagens de Programação
11/9/2015
5
Vetores (cont´)
#include <stdio.h>
#include <stdlib.h>
main()
{
int numero[10];
int i;
for (i = 0; i < 10; i++)
{
numero[i] = i; 
printf ("\n %d”, numero[i]);
}
system(“PAUSE”);
}
Linguagens de Programação
Vetores de Caracteres
• Vetores de caracteres podem ser encarados como 
“especiais”.
• Um vetor comporta uma ‘frase’, chamada no jargão da 
informática de string.
• Na verdade, nesse jargão, o vetor de caracteres é
chamado (ele mesmo) de string.
• Detalhe: Todo vetor de caracteres, para ser 
encarado como string, deve ser finalizado com um 
caractere ‘especial’, o caractere ‘\0’.
Linguagens de Programação
11/9/2015
6
Vetores de Caracteres (cont´)
#include <stdio.h>
#include <stdlib.h>
//Programa Nomes e notas de alunos.
main ()
{
float notas[3];
char nome[50]; // Um vetor de caracteres ou “string”.
printf ("\n Digite o nome do aluno: \n");
scanf ("%s", &nome);
printf ("Digite as duas notas do aluno \n");
printf ("Primeira nota: ");
scanf ("%f", &notas[0]);
printf ("Segunda nota: ");
scanf ("%f", &notas[1]);
notas[2] = ( notas[0] + notas[1] ) / 2.0;
printf (" \n A média do aluno %s é %f: \n", nome, notas[2] 
);
system(“PAUSE”);
}
Linguagens de Programação
Vetores de Caracteres
• Funcionou???? 
• Completamente???
• (E nomes compostos???)
• Como resolver?
• Funções específicas para manipulação de Strings!
Ex: (disponíveis na biblioteca “string.h”)
Linguagens de Programação
11/9/2015
7
Vetores de Caracteres (cont´)
#include <stdio.h>
#include <stdlib.h>
//Programa Nomes e notas de alunos.
main ()
{
float notas[3];
char nome[50]; // Um vetor de caracteres ou “string”.
printf ("\n Digite o nome do aluno: \n");
gets(nome);
printf ("Digite as duas notas do aluno \n");
printf ("Primeira nota: ");
scanf ("%f", &notas[0]);
printf ("Segunda nota: ");
scanf ("%f", &notas[1]);
notas[2] = ( notas[0] + notas[1] ) / 2.0;
printf (" \n A média do aluno %s é %f: \n", nome, notas[2] 
);
system(“PAUSE”);
}
Linguagens de Programação
Matrizes
� São estruturas de dados bidimensionais homogêneas que
utiliza linhas e colunas para identificação de
elementos;
� Por convenção adota-se primeiro a linha e depois a
coluna, como identificação de cada elemento;
� Por exemplo, o elemento [1,3] refere-se ao elemento da
primeira linha e terceira coluna.
Linguagens de Programação
11/9/2015
8
Matrizes (cont´)
Uma matriz de m linhas e n colunas
1 2 3 4 n-1 n
1
2
3
4
m
Linguagens de Programação
Matrizes (cont´)
� Representação de uma matriz:
Linguagens de Programação
11/9/2015
9
Matrizes (cont´)
#include <stdio.h>
#include <stdlib.h>
main ()
{
float notas[4] [3];
int i, j, soma;
soma=0;
for (i=0; i<4; i++) {
for (j=0; j<3; j++) {
printf (”Escreva o valor de [%d, %d]:”, i, j);
scanf ("%f", &notas[i] [j]);
soma += notas[i] [j]; 
}
}
printf(“A soma dos valores é: %f”, soma);
system(“PAUSE”); 
}
Linguagens de Programação
Matrizes (cont´)
#include <stdio.h>
#include <stdlib.h>
main () {
char strings [5][100];
int count;
for (count=0;count<5;count++) {
printf ("\n\nDigite uma string: ");
gets (strings[count]);
}
printf ("\n\n\nAs strings que voce digitou foram:\n\n");
for (count=0;count<5;count++)
printf ("%s\n",strings[count]);
system(“PAUSE”);
}
Linguagens de Programação
11/9/2015
10
Strings em Matrizes
� C tem muitas funções de manipulação de strings, as mais comuns são:
Nome Função
strcpy(s1, s2) Copia s2 em s1
strcat(s1, s2) Concatena s2 ao
final de s1
strlen(s1) Retorna o tamanho de s1
strcmp(s1, s2) Retorna 0 se
s1 e s2 são iguais; menor que 0 se s1 < s2; maior que 0 se s1 > s2
strchr(s1,
ch) Retorna um ponteiro para a primeira ocorrência de ch em s1
strstr(s1,
s2) Retorna um ponteiro para a primeira ocorrência de s2 em s1
Linguagens de Programação
#include <stdio.h>
#define MAX 100
#define LEN 80
char text[MAX][LEN];
void main(void){
register int t, i, j;
printf("Digite SAIR para sair.\n");
for (t = 0; t < MAX; t++){
printf("%d: ", t);
scanf("%s", text[t]);
// Se encontrar comando sair, sai
if (!strcmp(text[t], "SAIR")) break; }
for (i = 0; i < t; i++){
for (j = 0; text[i][j]; j++)
putchar(text[i][j]);
putchar('\n'); }}
Strings em Matrizes
Linguagens de Programação
11/9/2015
11
Registro
� São estruturas de dados heterogêneas, que possuem as
seguintes características:
� Contém um número fixo de campos
� Cada campo do registro funciona como uma variável
primitiva;
� Os registros não podem ser acessados sem a
especificação individual dos campos.<
Linguagens de Programação
Registro (cont´)
Algoritmos e Programação
• A palavra reservada struct indica ao compilador que está sendo criada uma estrutura
• Uma estrutura deve ser declarada após incluir as bibliotecas e antes da main
struct <identificador_struct> { 
tipo <nome_variável_campo1>; 
tipo <nome_variável_campo2>;
:
} ; 
struct <identificador_struct> <var1>, <var2>;11/9/2015
12
Registro 
(cont´)
#include <stdio.h>
#include <stdlib.h>
struct Ficha { 
char nome[30];
int codigo;
float salario; 
}; 
main () {
struct Ficha funcionario;
printf ("\nDigite o nome do funcionario: ");
gets(funcionario.nome);
printf ("\nDigite o codigo do funcionario: ");
scanf(“%d”, &funcionario.codigo);
printf ("\nDigite o salario do funcionario: ");
scanf(“%f”, &funcionario.salario);
printf ("\nO salario do funcionario %s é R$ %f”, 
funcionario.nome, funcionario.salario);
system(“PAUSE”);
}
Linguagens de Programação
Exercício 1
Escrever um algoritmo que lê um vetor de 10
elementos e informe qual o maior número e a sua
posição no vetor.
Linguagens de Programação
11/9/2015
13
Exercício 
1
Algoritmos e Programação#include <stdio.h>
#include <stdlib.h>
main () {
int num[10];
int i, maiornum, posmaior;
for (i=0; i<10; i++) {
scanf(“%d”, &num[i]);
}
maiornum= 0; 
posmaior=0;
for (i=0; i<10; i++) {
if (num[i] > maiornum) {
maiornum = num[i];
posmaior = i;
}
}
printf ("\nO maior numero e : %d, e a sua posicao e: %d”, 
maiornum, posmaior);
system(“PAUSE”);
}
Exercício 2
Escrever um algoritmo para armazenar valores
inteiros em uma matriz 3X4. A seguir, calcular a
média dos valores pares contidos na matriz.
Linguagens de Programação
11/9/2015
14
Exercício 3
Elabore um programa para ler o nome e o sobrenome
de dez pessoas, imprimindo-os no seguinte formato:
sobrenome, nome.
Linguagens de Programação
Exercício 4
Elabore um programa para ler as notas dos 22 alunos
da turma, calcule a média da turma, e calcule
também quantos alunos tiveram notas abaixo da
média, e quantos tiveram notas acima da média.
Linguagens de Programação
11/9/2015
15
Exercício 5
Defina um registro empregado para guardar os dados
(nome, sobrenome, data de nascimento, RG, data de
admissão, salário) de um empregado de sua
empresa. Defina um vetor de empregados para
armazenar todos os empregados de sua empresa.
Linguagens de Programação
Referências
1. Batista, C.A.T. “Estruturas de dados”. (disponível na web)
2. Marquez, M.G.”Algoritmos – Estruturas de Dados”. 
(disponível na web)
3. Gomes, W.; Vitor, A.; Aleixo, F.; Humberto, J. “Vetores” . 
(disponível na web)
11/9/2015
16
Linguagens de 
Programação
Prof. Dr. Paulo Nazareno Maia Sampaio
Aula 5

Outros materiais