Академический Документы
Профессиональный Документы
Культура Документы
Programao
Prof. Maikol Rodrigues
maikolmr@gmail.com
Lgica de Programao I
Maikol Rodrigues
Lgica de Programao I
Vetores
Para se declarar, forma geral:
tipo_da_varivel nome_da_varivel [tamanho];
Por qu?
Lgica de Programao I
Maikol Rodrigues
Vetores
Lgica de Programao I
Maikol Rodrigues
Vetores
#include <stdio.h>
int main () {
int num[1000];/* Declara um vetor de int com 1000posicoes */
int qn, aux, i;
printf(Qtde de nmeros da relao? \n );
scanf(%d, &qn);
for (i=0; i<qn; i++ ) {
printf(Digite um nro\n);
scanf(%d, &num[i]);
}
printf ("\n\n\n\t Os nmeros que voc digitou foram:\n\n");
for (i=0 ; i<qn ; i++) printf (" %d",num[i]);
}
Lgica de Programao I
Maikol Rodrigues
ndice comea do 0
num[0],num[1],...,num[9]
ndice comea do 1
num[1],num[2],...,num[10]
Lgica de Programao I
Maikol Rodrigues
Exerccios
8 Lista de exerccios
Lgica de Programao I
Maikol Rodrigues
Matrizes bidimensional
A forma geral de declarao:
tipo_da_varivel nome_da_varivel [altura][largura];
#include <stdio.h>
int main () {
int mtrx [20][10];
int i,j,count; count=1;
for (i=0;i<20;i++) {
for (j=0;j<10;j++) {
mtrx[i][j]=count;
count++;
}
}
}
Lgica de Programao I
Maikol Rodrigues
Matrizes
AUTO AVALIAO
O que imprime o programa a seguir? Tente entend-lo e responder. A seguir,
execute-o e comprove o resultado.
# include <stdio.h>
int main() {
int t, i, M[3][4];
for (t=0; t<3; ++t)
for (i=0; i<4; ++i)
M[t][i] = (t*4)+i+1;
for (t=0; t<3; ++t)
{
for (i=0; i<4; ++i)
printf ("%3d ", M[t][i]);
printf ("\n");
}
}
Lgica de Programao I
Maikol Rodrigues
Exerccios
9 Lista de exerccios
Lgica de Programao I
Maikol Rodrigues
10
Matrizes Multidimensionais
A forma geral de declarao:
tipo_da_varivel nome_da_varivel [tam1][tam2] ...
[tamN];
Lgica de Programao I
Maikol Rodrigues
11
Strings
char nome_da_string[tamanho];
Lgica de Programao I
Maikol Rodrigues
12
Strings
#include <stdio.h>
int main ()
{ char string[7];
printf ("Digite uma string: ");
gets (string);
printf ("\n\nVoce digitou %s",string);
}
Lgica de Programao I
Maikol Rodrigues
13
Strings
\0
...
...
Lgica de Programao I
Maikol Rodrigues
14
Strings
Como strings so vetores, possvel acessar posio por
posio usando o ndice do vetor
#include <stdio.h>
int main() {
char str[10] = "Joao";
printf("\n\nString: %s", str);
printf("\nSegunda letra: %c", str[1]);
str[1] = 'U';
printf("\nAgora a segunda letra eh: %c", str[1]);
printf("\n\nString resultante: %s", str);
}
Lgica de Programao I
Maikol Rodrigues
15
Strings
str[10] = "JOAO
Declara e armazena os caracteres 'J', O, A, O, e '\0'
Lgica de Programao I
Maikol Rodrigues
16
Strings
#include <stdio.h>
int main () {
char string[100]; /* String, ate' 99 caracteres */
int i, cont;
printf("\n\nDigite uma frase: ");
gets(string);
printf("\n\nFrase digitada:\n%s", string);
cont = 0;
for (i=0; string[i] != '\0'; i=i+1)
{
if ( string[i] == 'c' ) /* Se for a letra 'c' */
cont = cont +1; /* Incrementa o contador de caracteres */
}
printf("\nNumero de caracteres c = %d", cont)
}
Lgica de Programao I
Maikol Rodrigues
17
Auto avaliao
Lgica de Programao I
Maikol Rodrigues
18
Strcpy
#include <stdio.h>
#include <string.h>
int main () {
char str1[100], str2[100], str3[100];
printf ("Entre com uma string: ");
gets (str1);
strcpy (str2,str1); /* Copia str1 em str2 */
strcpy (str3,"Voce digitou a string "); /* Cpia "Voc digitou a string"
em str3 */
printf ("\n\n%s%s",str3,str2);
return(0);
}
Lgica de Programao I
Maikol Rodrigues
19
Strcat
#include <stdio.h>
#include <string.h>
int main () {
char str1[100],str2[100];
printf ("Entre com uma string: ");
gets (str1);
strcpy (str2,"Voce digitou a string ");
strcat (str2,str1);
printf ("\n\n%s",str2);
}
Lgica de Programao I
Maikol Rodrigues
20
Strlen
#include <stdio.h>
#include <string.h>
int main () {
int size;
char str[100];
printf ("Entre com uma string: ");
gets (str);
size=strlen (str);
printf ("\nA string tem tamanho %d", size);
}
Lgica de Programao I
Maikol Rodrigues
21
Strcmp
Lgica de Programao I
Maikol Rodrigues
22
Strcmp
#include <stdio.h>
#include <string.h>
int main () {
char str1[100],str2[100];
printf ("Entre com uma string: ");
gets (str1);
printf ("\n\nEntre com outra string: ");
gets (str2);
if ( strcmp(str1,str2) ==0)
printf ("\n\nAs strings so iguais .");
else
printf ("\n\nAs strings so diferentes.");
}
Lgica de Programao I
Maikol Rodrigues
23
Manipulao de Strings
AUTO AVALIAO
Veja como voc est:
Faa um programa que leia quatro palavras pelo teclado, e
armazene cada palavra em uma string. Depois, concatene
todas as strings lidas numa nica string. Por fim
apresente esta como resultado ao final do programa.
Lgica de Programao I
Maikol Rodrigues
24
Exerccios
5 Lista de exerccios
Lgica de Programao I
Maikol Rodrigues
25
Matrizes de Strings
A forma geral de declarao:
char nome_varivel [num_de_strings][compr_das_strings];
nome_da_varivel [ndice]
Lgica de Programao I
Maikol Rodrigues
26
Matrizes de Strings
#include <stdio.h>
int main () {
char str [5][100];
int l;
for (l=0 ; l<5 ; l++) {
printf ("\n\nDigite uma string: ");
gets (str[l]);
}
printf ("\n\n\nVoce digitou as strings:\n\n");
for (l=0; l<5; l++) printf ("%s\n",str[l]);
}
Lgica de Programao I
Maikol Rodrigues
27
Inicializao
A forma geral de inicializao de uma matriz:
tipo_varivel nome_varivel [tam1][tam2] ... [tamN] = {lista_de_valores};
Lgica de Programao I
10
11
12
Maikol Rodrigues
28
Inicializao
char str [7] = { 'J', 'o', 'a', 'o', '\0' };
char str [7] = "Joao";
J
\0
...
...
\0
...
...
\0
...
\0
...
...
Lgica de Programao I
Maikol Rodrigues
29
Lgica de Programao I
Maikol Rodrigues
30
Escopo de Variveis
Variveis locais
S tm validade dentro do bloco no qual so declaradas.
Sim. Podemos declarar variveis dentro de qualquer bloco.
Lgica de Programao I
Maikol Rodrigues
31
Escopo de Variveis
Lgica de Programao I
Maikol Rodrigues
32
Escopo de Variveis
Lgica de Programao I
Maikol Rodrigues
33
Escopo de Variveis
Paramtros formais
So declarados como sendo as entradas de uma funo.
Lgica de Programao I
Maikol Rodrigues
34
Escopo de Variveis
Variveis globais
So declaradas fora de todas as funes do programa.
Lgica de Programao I
Maikol Rodrigues
35
Evite ao mximo o uso de variveis globais. Elas ocupam memria o tempo todo
(as locais s ocupam memria enquanto esto sendo usadas) e tornam o
maisI difcil de ser entendido e menos geral.
Lgicaprograma
de Programao
Maikol Rodrigues
36
Lgica de Programao I
Maikol Rodrigues
37
AUTO AVALIAO
Veja como voc est:
Escreva um programa que declare uma varivel inteira global
e atribua o valor 10 a ela. Declare outras 5 variveis
inteiras locais ao programa principal e atribua os valores
20, 30, ..., 60 a elas. Declare 6 variveis caracteres e
atribua a elas as letras c, o, e, l, h, o . Finalmente, o
programa dever imprimir, usando todas as variaveis
declaradas:
As variveis inteiras contem os nmeros: 10,20,30,40,50,60
O animal contido nas variveis caracteres e o coelho
Lgica de Programao I
Maikol Rodrigues
38