Mac em C. Resumo e Exercícios P2
|
|
|
- Benedito Peralta Brandt
- 8 Há anos
- Visualizações:
Transcrição
1 Mac em C Resumo e Exercícios P
2 Resumo Teórico Vetores Declaramos vetores da seguinte forma: int vetor[50]; onde 50 é exemplo de um número inteiro e constante. Podemos também fazer um #define no início do programa #define TAMANHO 45 int main() { int vetor[50]; int vetor[tamanho]; } Para inicializar vetores pequenos podemos digitar seu conteúdo: int vetor3[4] = {1,, 3, 4}; Funções Funções são blocos de código que a partir de um parâmetro, produzem um resultado, análogas às funções matemáticas. O tipo do resultado da função caracteriza o tipo da função: se temos um int como resposta, declaramos int função(). Toda função não-void tem um return, comando que retorna o resultado do que foi feito dentro da função. int funcao (int a, int b) { <código> } 1
3 Normalmente fazemos funções quando um bloco específico de código desempenha uma função específica que pode ser utilizada mais vezes, ou quando temos muito código e o separamos em funções para melhor entendimento. Para chamar uma função, é igual ao que fazemos para printf e scanf, afinal estas também são funções, porém até agora não utilizamos os resultados dessas funções (sim, essas funções têm return!). Para armazenar o resultado, basta atribuir a uma variável uma chamada de função: int a; int b, c; a = função(b, c); Ponteiros e funções void Ponteiros são variáveis que guardam endereços da memória. Gosto de comparar ponteiros a envelopes de cartas. Os ponteiros são os envelopes, e as cartas são os conteúdos para os quais os ponteiros apontam. &p -> envelope p-> carta O operador & significa o endereço de. Todas as variáveis têm um endereço, e utilizamos ponteiros para guardá-los. int a; int* p = &a; Quando vamos enviar uma carta, compramos o envelope e compramos o papel. Não tem como escrevermos uma carta num envelope, precisamos do papel. Eventualmente, podemos escrever uma carta em casa e depois comprar o envelope para colocar a carta dentro. Nesse momento, é isso que aprenderemos
4 a fazer. Para a P3, teremos o envelope, e aí depois escreveremos as cartas. O legal do envelope é que podemos ter vários papéis dentro, quando a carta é muito comprida. Mas o envelope continuará sendo um envelope. Saindo um pouco da analogia, aprenderemos nesse momento a igualar o ponteiro a um endereço de uma variável já existente, mas no futuro aprenderemos a criar o ponteiro e em seguida alocar um espaço na memória para o qual esse ponteiro aponta. O ponteiro pode economizar muito espaço quando falamos de vetores e matrizes. Toda vez que passamos uma variável como parâmetro para uma função, o que acontece internamente é que uma cópia da variável é passada. Ou seja, ao passar um vetor como parâmetro, todos os valores armazenados são passados como uma cópia, ao passo que se usarmos um ponteiro, somente um endereço é passado, e assim temos mais dinamicidade. Um último diferencial do ponteiro é que a variável para qual ele aponta é alterada independentemente do contexto, muitas vezes dispensando o return das funções, deixando espaço para que a função mexa em várias variáveis e retorne códigos de status ou erros ao invés de valores propriamente ditos. Nesse contexto é que usamos funções do tipo void, em que as variáveis parâmetro são ponteiros. Strings e char Char é o tipo de variável que utilizamos para tratar letras do alfabeto. Porém, em C, char nada mais é que um int de tamanho reduzido (aliás o menor tipo de variável possível em C), indo de -17 a 17. Podemos imprimir um caractere através do modificador %c no printf. Além disso, se estiver no intervalo mencionado acima, podemos também imprimir a partir de um valor de uma variável de tipo int. 3
5 A leitura de um conjunto de caracteres, uma string, é feita com o modificador %s no scanf, e o segundo parâmetro tem que ser um vetor grande o suficiente para conter a string. Além disso, é bom também saber que esse vetor de caracteres sempre terminará com o símbolo \0, para indicar o término da string. A biblioteca string.h é muito útil para trabalharmos com strings, contendo vários métodos que poupam bastante trabalho: strlen(char *str) -> retorna o tamanho da string strcpy(char *dest, const char *src) -> copia a string src para a string dest strcat(char *dest, const char *src) -> coloca a string src no final da dest. Outras funções úteis podem ser vistas pesquisando o nome da biblioteca na internet. Switch case Uma forma mais organizada de fazer uma seleção condicional, o switch é como uma lista de possibilidades de valor de uma variável e a ação resultante de cada uma delas. No final temos o default, que é o caso em que nenhuma das outras possibilidades se aplicam. Recomendado quando há muitos else if encadeados. switch(selecao) { case 1: printf("caso 1"); break; case : printf("caso "); break; default: printf("nenhum caso"); 4
6 break; } É importante frisar que não é permitido comparações lógicas no switch. Apenas testamos valores absolutos. Portanto, isso significa que podemos ter ali no case caracteres, valores reais (pseudo-reais) e strings. Dicas vetor[i++] = j; -> atribui j pra posição e soma 1 no i vetor[++i] = j; ->Soma 1 no i e atribui j pra posição resultante Escrever (int) na frente do nome de uma variável faz com que o compilador leia a variável com int, mesmo que tenha sido declarada como double por exemplo. Nesse caso em específico, (int) a para um a = 4.36 vai resultar em 4. Ou seja, equivale a truncar o número. Essa prática é chamada de casting. Exercícios 1. Exercício de Prova P 016, questão 1 Faça um programa em C com uma função com assinatura int pega(int N, int i) que devolve o dígito de potência i de N. O programa principal deve solicitar os valores naturais para N e i e, usando o valor devolvido pela função pega, imprimir o dígito i. Exemplos: Para N = 103 e i =, deve-se imprimir 0. Para N = 103 e i = 0, deve-se imprimir 3. 5
7 . Exercício de Prova P 016, questão Faça um programa em C com uma função com assinatura float aproxima(float x, float err) que devolve o valor da expressão termo &, sendo n o primeiro valor tal que o termo termok = (-1) k x k + 1 / (3 x k!) < err (com err > 0). No programa principal deve-se solicitar que o usuário digite os valores para x e err e, usando o ' &() valor devolvido por aproxima, imprimir o valor do somatório. 3. Exercício de Prova P 016, questão 3 Faça um programa em C que, dado um natural N, imprima seu dígito de controle definido pelo seguinte processo: R: compute a soma s dos dígitos de N se s < 10, imprima s, senão repita o passo R usando N com o valor de s. Exemplos: Para N = 6409, computa = 19, computa = 10, computa = 1, então imprime Exercício de Prova P 016, questão 4 Faça uma função com assinatura void simplifica(int num, int den, int *rn, int *rd) que simplifica o racional num/den (ambos naturais, den > 0). Exemplo: num = 3, den = 1 => devolve rn = 1 e rd = 7 5. Exercício de Prova P 016, questão 5 Faça um programa em C que: leia um natural n > 0 e n pares de num e den (numeradores e denominadores) em um único vetor, sendo num em posições pares do vetor e den em ímpares (sequenciais). Usando a função void simplifica(int num, int den, int *rn, int *rd) anterior (mesmo não tendo feito pode supor feita), 6
8 computar a soma dos racionais e imprimir sua soma também na forma racional reduzida. Exemplo 1: Para n = 3 e os racionais 3/4, /5 e 1/7, o vetor de dados terá E a resposta será 181/140 (pois 3/4 + /5 + 1/ /140). Exemplo : Para n = 4 os racionais 1/4, 1/4, 1/4, 1/4, o vetor de dados será E a resposta será 1/1. 6. Exercício de Prova P 015, questão 1 Escreva um programa na linguagem C que lê como entrada um numero real épsilon > 0 e exibe como saída um número real que é uma aproximação de π calculada por meio da seguinte série infinita: π 6 = : + Inclua na aproximação todos os termos da série até o primeiro termo de valor menor do que epsilon. Inclua também na soma esse último termo calculado. Descubra o que muda de um termo para outro na soma e use essa informação para escrever sua função (ou seja, para calcular um termo da soma, você deve reaproveitar valores envolvidos no cálculo do termo anterior). 7. Exercícios de prova P1 00, questão 1 7
9 Para um número real x 0, denotamos por x seu chão, que é o maior inteiro menor ou igual a x. Por exemplo, temos 3 = 3 e 4.73 = 4. Dado um número real a0 1, podemos considerar a sequência de números a0, a1, a,... tal que a &?@ = 3a & a & se a k é par, se 3a k + 1 é múltiplo de 4, 3a & + 1 caso contrário para k 0. Por exemplo, começando com a0 = 13, obtemos a sequência 13, 10, 5, 4,, 1, Observe que após a ocorrência do número 1, todos os demais números da sequência são iguais a 1. Começando com a0 = 5/, obtemos 5/, 5/4, 19/16, 73/64, 83/56, 1105/104, 4339/4096,.... Temos 4339/ Se você continuar a sequência, perceberá que os números vão ficando cada vez mais próximos de 1. Chamamos a sequência (ak)k 0 de sequência de Collatz real com valor inicial a0. a) Escreva uma função na linguagem C de protótipo int collatz(double x, double eps); que, dados números reais x 1 e eps > 0, calcula a sequência de Collatz (ak)k 0 de valor inicial a0 = x e devolve o MENOR n tal que an 1 < eps. Por exemplo, se x = 5/ e eps = 0.06, sua função deve devolver 6, já que a6 = 4339/ e os valores anteriores são maiores ou iguais a 1105/ b) Você deve escrever um programa na linguagem C para calcular o maior valor de sua função do item (a) para o conjunto de números xr = 1 + rδ com 0 r N inteiro, onde δ = (u 1)/N. Assim, seu programa deve ler números reais u 1 e eps > 0 e um número inteiro N 1 e imprimir na tela o número max{ collatz(xr, eps) : 0 r N é inteiro }. Você pode usar a função do item anterior mesmo que não a tenha escrito. 8
10 8. Exercícios de prova P 015, questão 3 Nesta questão você vai implementar uma função na linguagem C para a soma de números de ponto flutuante. Neste problema vamos supor que a macro (= constante) MAX contenha um valor tal que uma variável do tipo int consiga comportar números de valor absoluto menor ou igual a 10 MAX. Nosso objetivo é sempre trabalhar com mantissas de valor absoluto menor ou igual a MAX. Um número de ponto flutuante é representado por um par (m, e) de números inteiros, sendo m a mantissa e e o expoente. O par (m, e) representa o número m 10e. Um número está normalizado se sua mantissa não possui zeros à direita. Por exemplo, o número (1300, 5) não está normalizado, já o número (13, 7) está normalizado. Você deve escrever uma função de protótipo int soma(int *res m, int *res e, int x m, int x e, int y m, int y e); que recebe dois números de ponto flutuante normalizados (x_m, x_e) e (y_m, y_e) com x_m, y_m MAX e coloca em res_m e res_e a mantissa e o expoente do resultado NORMALIZADO da soma dos dois números recebidos. A função deve devolver ZERO se ocorreu perda de precisão durante a soma e um valor DIFERENTE DE ZERO caso contrário. LEMBRE-SE: devemos ter ao final res_m MAX. Para escrever sua função, lembre-se de que: Para fazer a soma, precisamos igualar os expoentes dos números (caso eles não sejam iguais), mas sempre com o cuidado de manter a maior quantidade possível de dígitos de precisão no resultado. Com os números com expoentes iguais, podemos somar suas mantissas e normalizar o resultado. Se ao final o valor absoluto da mantissa for maior que MAX, devemos dividí-la por 10 e aumentar o expoente para obter uma mantissa de valor absoluto menor ou igual a MAX. 9
11 Neste exercício, você não precisa se preocupar com a ocorrência de overflow no expoente de um número. EXEMPLO: Suponha que MAX = 999. Vamos somar a = (99, 5) com b = (587, 3). Primeiro diminuímos o expoente de a (que é o número de maior expoente), obtendo (990, 4); note que não podemos diminuir mais o expoente. Depois, aumentamos o expoente de b até obter expoente 4, obtendo (58, 4) com perda de precisão. Depois, fazemos = 1048 > 999, logo temos que consertar a mantissa e perder precisão novamente. Assim, obtemos o resultado (104, 5) com perda de precisão. 9. Exercícios de prova P 015, questão 4 Dizemos que o par de números (p, q) é um par de primos gêmeos se q = p +. Por exemplo, (101, 103) é um par de primos gêmeos. A função de protótipo void devolveprimosgemeos(int i, int *p1, int *p); devolve em *p1 e *p o i-ésimo par de primos gêmeos, onde (3, 5) é o primeiro par de primos gêmeos, (5, 7) é o segundo, (11, 13) é o terceiro, e assim por diante. A seguir, são apresentadas 4 diferentes implementações da função devolveprimosgemeos. Em cada uma delas, você deve indicar se o código está correto ou incorreto. Ao lado de toda implementação que indicar como incorreta, escreva brevemente sobre o(s) erro(s) encontrado(s). Obs.: (i) O valor da questão será anulado caso todas as respostas forem marcadas como Correto. (ii) Você deve supor que a função de protótipo int ehprimo(int num); (que devolve 1 quando num é primo e 0 caso contrário) já existe. a) void devolveprimosgemeos(int i, int *p1, int *p) { int k = 0, p; for (p = 3; k < i; p++) { if (ehprimo(p) && ehprimo(p+)) k++; } p1 = p; Correto ( ) Incorreto ( ) 10
12 p = p+; } b) void devolveprimosgemeos(int i, int *p1, int *p) { int k = 0, p; for (p = ; k < i; p++) if (ehprimo(p) && ehprimo(p+)) k++; *p1 = p-1; *p = p+1; } c) void devolveprimosgemeos(int i, int *p1, int *p) { int k = 1, p = 0; while (k <= i) { p++; if (ehprimo(p) && ehprimo(p+)) k++; } *p1 = p; *p = p+; } d) void devolveprimosgemeos(int i, int *p1, int *p) { int k = 0, p = 1; } while (k <= i) { p+=; if (ehprimo(p) && ehprimo(p+)) k++; } *p1 = *p; *p = (*p)+; Correto ( ) Incorreto ( ) Correto ( ) Incorreto ( ) Correto ( ) Incorreto ( ) 11
13 Gabarito 1. 1 #include <stdio.h> 3 int pega (int N, int i) 4 { 5 while (i > 0 && N > 0){ 6 N /= 10; 7 i --; 8 } 9 if (N > 0) 10 return (N%10); 11 else 1 return -1; 13 } int main () 16 { 17 int N, i; 18 printf("digite N e i: "); 19 scanf("%d%d", &N, &i); 0 if (pega (N, i) >= 0) 1 printf("%d", pega(n, i)); else 3 printf ("Erro, i eh maior que o numero de casas de N"); 4 return 0; 5 }. 1 1 #include <stdio.h> 3 float aproxima (float x, float err); 4 float potencia (float num, int exp); 5 int fatorial (int num); 6 7 int main () 8 { 9 float x, err; 10 printf("digite x e err: "); 11 scanf("%f%f", &x, &err); 1 printf("%f", aproxima(x, err)); 13 return 0; 14 }
14 15 16 float aproxima(float x, float err) 17 { 18 int i; 19 float resultado = 0, termo = err + 1; 0 for (i = 0; termo > err; i ++) 1 { termo = potencia (x, *i + 1) / (3* fatorial (*i)); 3 /*termo = potencia (x, *i + 1) / (fatorial (*i + 1)); --> Série de Taylor do seno para testar o funcionamento do programa */ 4 if (i % == 0) 5 resultado += termo; 6 else 7 resultado -= termo; 8 } 9 return resultado; 30 } 31 3 float potencia (float num, int exp) 33 { 34 float resultado = 1; 35 if (exp == 0) 36 return 1; 37 for (; exp > 0; exp --){ 38 resultado *= num; 39 } 40 return resultado; 41 } 4 43 int fatorial (int num) 44 { 45 int resultado; if (num == 0) 48 return 1; for (resultado = 1; num > 0; num --){ 51 resultado *= num; 5 } 53 return resultado; 54 } 55
15 3. 1 #include <stdio.h> 3 int calculas (int n); 4 5 int main() 6 { 7 int n; 8 printf("digite N: "); 9 scanf("%d", &n); 10 printf("%d", calculas(n)); 11 return 0; 1 } int calculas(int n) 15 { 16 int s; 17 do{ 18 s = 0; 19 while (n > 0){ 0 s += n%10; 1 n/=10; } 3 n = s; 4 }while (s >= 10); 5 return n; 6 } 4. 1 #include <stdio.h> 3 void simplifica (int num, int den, int* rn, int* rd) 4 { 5 int i; 6 for (i = ; i <= num && i <= den; i++){ 7 while (num%i == 0 && den%i == 0){ 8 num /= i; 9 den /= i; 10 } 11 } 1 *rn = num; 13 *rd = den; 14 } 15
16 5. 1 #include <stdio.h> #define VETOR 51 3 void simplifica (int num, int den, int* rn, int* rd); 4 int main() 5 { 6 int vetor[vetor], den = 1, i, n, num = 0, rn, rd; 7 printf("digite n e entao os pares"); 8 scanf("%d", &n); 9 for (i = 0; i < *n; i++){ 10 scanf("%d", &vetor[i]); 11 } 1 for (i = 1; i < *n; i += ){ 13 if (den!= vetor[i]){ 14 den *= vetor[i]; 15 } 16 } 17 for (i = 0; i < *n; i += ){ 18 num += (den / vetor[i + 1])*vetor[i]; 19 } 0 simplifica(num, den, &rn, &rd); 1 printf("%d/%d", rn, rd); return 0; 3 } 6. 1 #include <stdio.h> int main() 3 { 4 double soma, parte1, parte3, termo, epsilon; 5 int denominador_parte; 6 7 printf("digite o valor de epsilon: "); 8 scanf("%lf", &epsilon); 9 termo = soma = 0.5; 10 parte1 = 1; 11 denominador_parte = 1; 1 parte3 = 0.5; while (termo >= epsilon) 15 { 16 denominador_parte += ; 17 parte1 *= (float)(denominador_parte - ) / (denominador_parte - 1); 18 parte3 /= 4.0;
17 19 termo = parte1 * (1.0 / denominador_parte) * parte3; 0 soma += termo; 1 } soma *= 6; 3 printf("aproximacao do pi: %f \n", soma); 4 return 0; 5 } 7. 1 #include <stdio.h> 3 int collatz (double x, double eps); 4 int maxcollatz (double eps, int n, double u); 5 double absoluto (double x); 6 7 int main() 8 { 9 double x, epsilon, u, n; printf("digite o valor de x: "); 1 scanf("%lf", &x); 13 printf("digite o valor de epsilon: "); 14 scanf("%lf", &epsilon); 15 printf("digite o valor de n: "); 16 scanf("%lf", &n); 17 printf("digite o valor de u: "); 18 scanf("%lf", &u); 19 printf("%d", maxcollatz(epsilon, n, u )); 0 return 0; 1 } 3 int collatz (double x, double eps) 4 { 5 int i; 6 for (i = 0; absoluto(x - 1) >= eps; i++){ 7 if ((int)x % == 0) 8 x /= ; 9 else if ((3*(int)x + 1) % 4 == 0) 30 x = (3*x + 1)/4; 31 else 3 x = (3*x + 1)/; 33 } 34 return i; 35 }
18 36 37 int maxcollatz (double eps, int n, double u) 38 { 39 double delta = (u - 1)/n; 40 double x, max = 0; 41 int i; 4 for (i = 0; i <= n; i++){ 43 x = 1 + i * delta; 44 if (collatz(x, eps) > max) 45 max = collatz(x, eps); 46 } 47 return max; 48 } double absoluto (double x) 51 { 5 if (x < 0){ 53 printf("batata"); /* Queria testar aqui a real necessidade de escrever essa função módulo */ 54 return -x; 55 } 56 return x; 57 } 8. 1 #define MAX 999 #include <stdio.h> 3 4 int soma(int *res_m, int *res_e, int x_m, int x_e, int y_m, int y_e) 5 { 6 int precisao = 1, m_aux, e_aux; 7 /* Guarda em x_m, x_e o operando de menor expoente*/ 8 if (y_e < x_e ) 9 { /* troca os valores de x_m, x_e e y_m, y_e */ 10 m_aux = x_m; 11 e_aux = x_e; 1 x_m = y_m; 13 x_e = y_e; 14 y_m = m_aux; 15 y_e = e_aux; 16 } 17 /* Decrementa o expoente do maior numero ate que ele se iguale ao do menor, 18 mas sem estourar a mantissa do maior numero */ 19 while (y_e > x_e && y_m*10 <= MAX && y_m * 10 >= -MAX){ 0 y_e --;
19 1 y_m *= 10; } 3 /* Se y_m chegou ao numero maximo de digitos e os expoentes ainda continuam diferentes, 4 entao e preciso incrementar o expoente do menor numero cortando digitos de sua 5 mantissa. Nesse processo, o menor numero pode chegar a zero. */ 6 while (y_e > x_e && x_m!= 0){ 7 x_e ++; 8 x_m /= 10; 9 precisao = 0; 30 } 31 /* o resultado da soma ficara armazenado temporariamente em y_m, y_e */ 3 y_m += x_m; if (y_m!= 0) /* normaliza o resultado */ while (y_m % 10 == 0){ 37 y_m /= 10; 38 y_e++; 39 } 40 if (y_m > MAX y_m < -MAX){ 41 /* y_m > MAX, entao e preciso cortar 1 digito da mantissa */ 4 y_m /= 10; 43 y_e ++; 44 precisao = 0; 45 } 46 /* armazena o resultado */ 47 *res_m = y_m; 48 *res_e = y_e; 49 return precisao; 50 } 51 5 int main() 53 { 54 int x_m, x_e, y_m, y_e, res_m, res_e; 55 printf("digite x_m, x_e, y_m e y_e: "); 56 scanf ("%d%d%d%d", &x_m, &x_e, &y_m, &y_e); if(soma(&res_m, &res_e, x_m, x_e, y_m, y_e)) 59 printf("%de%d + %de%d = %de%d", x_m, x_e, y_m, y_e, res_m, res_e); 60 else 61 printf("%de%d + %de%d = %de%d, com perda de precisao", x_m, x_e, y_m, y_e, res_m, res_e); 6 63 return 0; 64 }
20 9. a) Incorreto: Após o laço, p está com 1 a mais do que deveria estar. Além disso, usa p1 e p quando deveria usar *p1 e *p. b) Correto c) Correto d) Incorreto: o laço para no i + 1-ésimo par de primos gêmeos, e p não é uma variável do tipo ponteiro, portanto não faz sentido usar *p.
DURAÇÃO DA PROVA: 2 horas
MAC2166 Introdução à Computação Escola Politécnica Segunda Prova 19 de maio de 2015 Nome: Assinatura: N ō USP: Turma: Professor: Instruções: 1. Não destaque as folhas deste caderno. 2. A prova contém 4
Programação: Vetores
Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia
Linguagem C: Introdução
Linguagem C: Introdução Linguagem C É uma Linguagem de programação genérica que é utilizada para a criação de programas diversos como: Processadores de texto Planilhas eletrônicas Sistemas operacionais
Linguagem C (repetição)
Linguagem C (repetição) André Tavares da Silva [email protected] Exercício Escrever um programa que conte (mostre na tela) os números de 1 a 100. Comandos aprendidos até o momento: printf, scanf, getchar,
Algoritmos e Programação
Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes [email protected] 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;
Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.
1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras
Estrutura de dados 2. Ponteiro. Prof. Jesuliana N. Ulysses
1 3 Estrutura de dados 2 Ponteiro Ponteiro 2 O ponteiro é um tipo de dado como int, char ou float. A diferença do ponteiro ponteiro guardará um endereço de memória. Por meio deste endereço pode-se acessar
Sistemas Operacionais e Introdução à Programação. Programação com linguagem C
Sistemas Operacionais e Introdução à Programação Programação com linguagem C 1 Entrada e saída: escrevendo na tela Veja uma comparação entre um programa Portugol e seu equivalente em C: Inicio Inteiro
MC-102 Aula 06 Comandos Repetitivos
MC-102 Aula 06 Comandos Repetitivos Instituto de Computação Unicamp 2 de Setembro de 2016 Roteiro 1 Comandos Repetitivos 2 Comando while 3 Comando do-while 4 O comando for 5 Exemplos com Laços Variável
3. Linguagem de Programação C
Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 3.3. Conceitos Básicos de C: Expressões, Operadores e Bibliotecas
Exercícios Repetição
Curso de Engenharia de Controle e Automação Disciplina: Informática para a Automação Professor: Marcelo Cendron Exercícios Repetição 1.1 8.3 Exercícios 1. Faça um programa utilizando o comando while, que
MC102 Algoritmos e Programação de Computadores
MC102 Algoritmos e Programação de Computadores Instituto de Computação UNICAMP Primeiro Semestre de 2014 Roteiro 1 Maior número 2 Soma de n números 3 Fatorial 4 Máximo Divisor Comum (MDC) 5 Números primos
Aula 15 Variáveis Indexadas (vetores)
Aula 15 Variáveis Indexadas (vetores) Além das variáveis normais já conhecidas, podemos ter também variáveis indexadas. Tais variáveis são referenciadas por um nome e um índice. Especialmente úteis para
Modularidade - Funções e Procedimentos
Modularidade - Funções e Procedimentos José Gustavo de Souza Paiva Problema Em diversas situações, é preciso executar uma tarefa específica diversas vezes em um programa, variando apenas os dados de entrada
Linguagem C Controle do Fluxo de Execução. Lógica de Programação
Linguagem C Controle do Fluxo de Execução Lógica de Programação Caro(a) aluno(a), Aqui começaremos a escrever os nossos primeiros programas em uma Linguagem de Programação. Divirta-se!!! Estrutura Seqüencial
Linguagem C estruturas de repetição
Linguagem C estruturas de repetição IF61A/IF71A - Computação 1 Prof. Leonelo Almeida Universidade Tecnológica Federal do Paraná Até agora... Introdução à linguagem C Estrutura de um programa Escrita e
Linguagem C. André Tavares da Silva.
Linguagem C André Tavares da Silva [email protected] Variáveis Posição nomeada de memória que é usada para guardar um valor que pode ser modificado pelo programa. Todas as variáveis devem ser
Comandos de entrada. e saída. Comandos de entrada. Comandos de entrada. Comandos de entrada. Comandos de entrada. Comandos de entrada.
e saída Biblioteca stdio.h Comandos Função scanf() Função gets() Função getchar() Material cedido pelo prof. Daniel Callegari scanf() Rotina de entrada que lê todos os tipos de dados. Protótipo: int scanf(const
Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados
Métodos Computacionais Operadores, Expressões Aritméticas e Entrada/Saída de Dados Tópicos da Aula Hoje aprenderemos a escrever um programa em C que pode realizar cálculos Conceito de expressão Tipos de
LINGUAGEM DE PROGRAMAÇÃO C AULA 2. Professor: Rodrigo Rocha
LINGUAGEM DE PROGRAMAÇÃO C AULA 2 Professor: Rodrigo Rocha TIPOS, VARIÁVEIS E CONSTANTES Tipos de Dados Variáveis Constantes Introdução a entrada e saída Printf Scanf Ferramentas: Dev-C++ Code::Blocks
Linguagem C. Prof.ª Márcia Jani Cícero
Linguagem C Prof.ª Márcia Jani Cícero A estrutura Básica de um Programa em C Consiste em uma ou várias funções ou programas. main( ) // primeira função a ser executada // inicia a função // termina a função
INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1
INF1007: Programação 2 0 Revisão 06/08/2015 (c) Dept. de Informática - PUC-Rio 1 Tópicos Principais Variáveis e Constantes Operadores e Expressões Entrada e Saída Tomada de Decisão Construção com laços
controle de fluxo - condicionais
controle de fluxo - condicionais controle de fluxo - condicionais tópicos if if else if else if else expressões booleanas switch referências Capítulo 4 da apostila Capítulo 3 do livro condicionais (tomada
3.1 - Funções para manipular dados de entrada e saída padrão
1616161616161616161616161616161616161616161616161616 3- ENTRADA E SAÍDA EM C Os principais meios para executar operações de entrada e saída (E/S) são: Entrada e saída pelo console (ou padrão): teclado
Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados
Introdução à Programação Operadores, Expressões Aritméticas e Entrada/Saída de Dados Programa em C #include int main main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius
Atividade de laboratório listas encadeadas simples
Atividade de laboratório listas encadeadas simples 1. Estrutura básica Uma lista encadeada simples é uma estrutura de dados composta de uma seqüência de estruturas elementares chamadas nós. Cada nó contém
Capítulo 4: Condicionais
Capítulo 4: Condicionais INF1004 e INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Tomada de Decisão Até o momento, todas as instruções eram executadas, uma após a outra.
Capítulo 1: Introdução à Linguagem C. Pontifícia Universidade Católica Departamento de Informática
Capítulo 1: Introdução à Linguagem C Pontifícia Universidade Católica Departamento de Informática Programa Programa é um algoritmo escrito em uma linguagem de programação. No nosso caso, a linguagem C.
Aula 15: Repetição (Parte 3)
Aula 15: Repetição (Parte 3) Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aula Anterior Breve Revisão Comandos de Decisão
Introdução à Programação. Expressões Booleanas e Comandos Condicionais
Introdução à Programação Expressões Booleanas e Comandos Condicionais Comandos Condicionais Misture os ingredientes Unte forma com manteiga Despeje a mistura na forma Algoritmo para preparação de bolo
Programação Estruturada
Programação Estruturada Introdução à linguagem C Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Programação estruturada
Faculdade Anglo-Americano Curso de Ciência da Computação Linguagem de Programação. Lista de Exercícios 1
Faculdade Anglo-Americano Curso de Ciência da Computação Linguagem de Programação Lista de Exercícios 1 1. O programa seguinte tem vários erros em tempo de compilação. Encontre-os. Main() int a=1; b=2,
Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO
Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Introdução Criada em 1972, por Dennis Ritchie; Centro de Pesquisas da Bell Laboratories; Para utilização no S.O. UNIX; C é uma linguagem
Variáveis, Comandos de Atribuição e Comando de Entrada e Saída
BCC 201 - Introdução à Programação Variáveis, Comandos de Atribuição e Comando de Entrada e Saída Guillermo Cámara-Chávez UFOP 1/1 Estrutura Básica de um programa C I < d i r e t i v a s do pré p r o c
Aula 12- Variáveis e valores reais
Aula 12- Variáveis e valores reais Até agora todos os nossos problemas continham apenas valores inteiros e portanto variáveis do tipo int. Para resolver problemas que usam valores com parte fracionária,
Introdução a Programação de Jogos
Introdução a Programação de Jogos Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição
LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO
LÓGICA DE PROGRAMAÇÃO PROFª. M.Sc. JULIANA H Q BENACCHIO Primeiro programa em C #include int main() { int num1, num2, result; scanf("%d",&num1); scanf("%d",&num2); result = num1 + num2; printf("%d",
Aula 8 Oficina de Programação Vetores. Profa. Elaine Faria UFU
Aula 8 Oficina de Programação Vetores Profa. Elaine Faria UFU - 2017 Variáveis Compostas Homogêneas O que uma variável composta homogênea? - Conjunto de variáveis do mesmo tipo - É chamada de forma geral
1 Exercícios com ponteiros
Computação para Informática Funções e Ponteiros1 EXERCÍCIOS COM PONTEIROS Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Funções e ponteiros O objetivo desta aula prática
Explicação do programa:
Disciplina: Introdução à Programação. IPRJ/UERJ Professora: Sílvia Mara da Costa Campos Victer Índice: Aula10 Sub-rotina: Em algoritmos Em C Sub-rotinas subprograma - programação modularizada Definição:
Linguagem C vetores. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná
Linguagem C vetores IF61A/IF71A - Computação 1 Prof. Leonelo Almeida Universidade Tecnológica Federal do Paraná Até agora... Introdução à linguagem C Estrutura de um programa Escrita e execução do primeiro
Sub Rotinas. Estrutura de Dados. Prof. Kleber Rezende
Sub Rotinas Estrutura de Dados Prof. Kleber Rezende Considerações Iniciais Uma dos métodos mais comuns e amplamente utilizados em programação de computadores é o Top-Down. Nesta abordagem um problema é
1 Resumo: Matrizes. 2.1 Como declarar uma matriz IME/USP. Departamento de Ciência da Computação
Departamento de Ciência da Computação MAC2166 Introdução a Computação IME/USP Matrizes 1 Resumo: Matrizes são estruturas bi-dimensionais utilizadas para armazenar dados de um mesmo tipo. Para declarar
Ponteiros e Tabelas. K&R: Capítulo 5
Ponteiros e Tabelas K&R: Capítulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros
ponteiros INF Programação I Prof. Roberto Azevedo
ponteiros INF1005 -- Programação I -- 2016.1 Prof. Roberto Azevedo [email protected] ponteiros tópicos o que são ponteiros operadores usados com ponteiros passagem de ponteiros para funções referência
Linguagem C (estruturas condicionais)
Linguagem C (estruturas condicionais) André Tavares da Silva [email protected] Comandos de Controle de Fluxo Todos os comandos devem ser terminados com um ;. { e são usados para delimitar um
Programação Básica. Estrutura de um algoritmo
Programação Básica Estrutura de um algoritmo Código-fonte Como vimos na aula anterior um algoritmo pode ser representado usando um fluxograma Um algoritmo pode também ser representado usando texto Esse
1) Operadores de auto incremento ++ e auto decremento --
Aula 09 - Operadores de auto incremento e auto decremento, atribuição múltipla, atribuição na declaração, atribuição resumida e algumas regras de boa programação. 1) Operadores de auto incremento ++ e
Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2
Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas Aula Tópico 2 1 Problema 3 Exibir o maior número inteiro que pode ser representado no computador. 2 Qual o maior número inteiro? Para o compilador
Aula 9 Oficina de Programação Strings. Profa. Elaine Faria UFU
Aula 9 Oficina de Programação Strings Profa. Elaine Faria UFU - 2017 String Cadeia de caracteres (ou String) É uma seqüência de letras e símbolos, na qual os símbolos podem ser espaços em branco, dígitos
Algoritmos e Programação
Algoritmos e Programação Aula 7 Vetores Profa. Marina Gomes [email protected] 19/05/2017 Engenharia de Computação - Unipampa 1 Motivação Problema: Leia as notas de uma turma de cinco estudantes
Disciplina de Algoritmos e Programação
Disciplina de Algoritmos e Programação Último Conteúdo Estruturas de condição Estrutura condicional simples Utilização da estrutura de condição if com expressões lógicas simples Utilização do comando if
A sintaxe para se declarar uma variável do tipo ponteiro é dada por:
Pense duas vezes e faça uma vez. Provérbio Chinês. PONTEIROS Um ponteiro nada mais é que uma variável capaz de armazenar um número hexadecimal que corresponde a um endereço de memória de outra variável.
Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento
Hello World Linguagem C printf("hello world!\n"); main é a função principal, a execução do programa começa por ela printf é uma função usada para enviar dados para o vídeo Palavras Reservadas auto double
Linguagem C: Ponteiros. Prof. Leonardo Barreto Campos 1
Linguagem C: Ponteiros Prof. Leonardo Barreto Campos 1 Sumário Ponteiros; Variáveis ponteiros; Operadores de ponteiros; Expressões com ponteiros; Atribuição de ponteiros; Aritmética de ponteiros; Comparação
Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa?
Funções Suponha um conjunto habitacional, com várias famílias...... imagina se todas elas morassem em uma única casa? Funções Introdução à Computação 1 de 28 Funções Na Programação, funções são conjuntos
Entender o problema Encontrar um algoritmo para resolvê-lo. Implementar o algoritmo numa linguagem de programação
Entender o problema Encontrar um algoritmo para resolvê-lo Implementar o algoritmo numa linguagem de programação Permitem implementar um algoritmo Expressar o algoritmo numa forma que o computador entenda
MC-102 Aula 13. Instituto de Computação Unicamp. 29 de Setembro de 2016
MC-102 Aula 13 Funções I Instituto de Computação Unicamp 29 de Setembro de 2016 Roteiro 1 Funções Definindo uma função Invocando uma função 2 O tipo void 3 A função main 4 Protótipo de funções 5 Funções
Declarações. C diferencia letras maiúsculas de minúsculas! int n, N; n é diferente de N!
Declarações Os nomes das variáveis devem conter apenas letras, dígitos e o símbolo _ Os principais tipos são: int, float, double e char Exemplos: int n; int quantidade_valores; float x, y, somavalores;
Aula 4. Comandos de Repetição. Prof. Filipe Mutz.
Aula 4 Comandos de Repetição Prof. Filipe Mutz. Instrução Instrução Instrução... Instrução Instrução Condicional (seleção) Repetitivo (loops) Comandos de repetição permitem que um conjunto de instruções
Aula 05: Condicionais (if / else)
Aula 05: Condicionais (if / else) Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aula Anterior Breve Revisão Comandos de Decisão
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO PROF. FABIANO TAGUCHI http://fabianotaguchi.wordpress.com (66) 9953-7642 AULA 02 Revisão de conteúdos da aula passada Exercícios de revisão da aula 01 Estruturas condicionais
Permite modularidade (dividir programa em partes): Facilita a depuração (debug) e portabilidade.
222222222222222222222222222 8 - FUNÇÕES 81 - Características básicas É um trecho independente de código, com objetivos bem definidos Programas em C, geralmente consistem em várias pequenas funções, ao
