• Nenhum resultado encontrado

Aula de Revisão da Parte #1

N/A
N/A
Protected

Academic year: 2021

Share "Aula de Revisão da Parte #1"

Copied!
15
0
0

Texto

(1)

Aula de Revisão da Parte #1

INF01202

(2)

N Quando Assunto

1 2019-03-11 Paradigmas de programação, programa, algoritmo 2 2019-03-13 Algoritmo: atribuição, entrada e saída

Estrutura de programa C: scanf, printf

4 2019-03-18 Tipos de Dados, Declaração e tipos de variáveis Operadores e expressão aritmética e lógica 5 2019-03-20 Comando de Seleção If

7 2019-03-25 Aninhamento de comandos If Else

8 2019-03-27 Estrutura de seleção múltipla - comando switch 10 2019-04-01 Comando iterativo for

11 2019-04-03 Comandos iterativos while e do-while

13 2019-04-08 Comandos iterativos while e do-while Exemplos

15 2019-04-15 Tipos estruturados básicos  arranjos de uma dimensão 16 2019-04-17 Classicação de vetores Strings: arranjos de caracteres 17 2019-04-22 Arranjos com mais de uma dimensão: matrizes 18 2019-04-24 Busca e classicação em matrizes

(3)

Conteúdos até o presente momento

N PDF KR

01 Introdução de Algoritmos e Programação 02 Estrutura de um Programa em C C1 04 Tipos de variáveis, expressões aritméticas C2 05 Comandos if e expressões lógicas C2, S3.2 07 Comandos if-else aninhados S3.3 08 Estrutura de seleção múltipla switch-case S3.4

10 Comando iterativo for S3.5

11 Comando iterativo for (bis) S3.5

13 Comando iterativo while S3.5, S3.6

15 Arranjos unidimensionais S1.6, S5.3

16 Strings S1.9, S5.5

17 Matriz S5.7

(4)

#include <stdio.h> int main () { int x, i, j; x = 8; for (i = 2; i < 5; i++) { j= 3; while (j > 0) { x = x+1; j = j-1; } printf( "X : %5d\n", x ); } printf("- Fim - \n"); return 0; }

Dado o programa acima, não identado, (1) apresente os valores e formato apresentados como saída. (2) Reescreva o programa acima de forma identada, ao lado do código, substituindo o FOR pelo comando WHILE e o WHILE por um comando DOWHILE, gerando as mesmas saídas.

(5)

(#1) Código

 Substituir o FOR pelo comando WHILE  substituir o WHILE pelo comando DO-WHILE

#include <stdio.h> int main () { int x, i, j; x = 8; i = 2; while (i < 5){ j= 3; do { x = x+1; j = j-1; }while(j > 0); printf( "X : %5d\n", x ); i++; } printf("- Fim - \n"); return 0; }

(6)

Algoritmo e programa para identicar a maior subsequência de números 0 ou 1. Por exemplo, para a sequência

0 0 1 1 0 1 0 1 0 0 1 1 1 0 0 0 0 0 1 0 1 0

Deve ter como saída: I Posição 13 I Tamanho 5

I Sequência 0 0 0 0 0

(7)

(#2) Código

#include <stdio.h> intmain(){ intvet[]={0,0,1,1,0,1,0,1,0,0, 1,1,1,0,0,0,0,0,1,0, 1,0}; inttam= 22; inti; intmaior_tamanho= -1; intmaior_comeco= -1; intcomeco= 0; inttamanho= 1;

intatual=vet[0];

for(i= 1; i<tam; i++){ if(vet[i]==atual){ tamanho++; if(tamanho>maior_tamanho) { maior_tamanho=tamanho; maior_comeco=comeco; } }else{ comeco=i; tamanho= 1; atual=vet[i]; } // printf("%d %d %d %d\n",

// vet[i], atual, comeco, tamanho); }

printf ("Posição %d\n", maior_comeco); printf ("Tamanho %d\n", maior_tamanho); printf ("Sequência "); for(i=maior_comeco; i<(maior_comeco+maior_tamanho); i++){ printf("%d ", vet[i]); } printf ("\n"); return0; } Posição 13 Tamanho 5 Sequência 0 0 0 0 0

(8)

Faça um programa que identica se um número inteiro qualquer é um número perfeito. Número perfeito é aquele cuja soma de seus divisores, exceto ele próprio, é igual ao número. O programa recebe um inteiro como entrada e fornece como saída uma mensagem dizendo se é perfeito ou não. Para identicar se é divisor use o resto da divisao: numero % divisor == 0

(9)

(#3) Código

#include <stdio.h> int main(){ int i; int valor; scanf("%d", &valor); int soma = 0;

for (i = 0; i < valor; i++){ if (valor%i == 0){

soma += i; } }

if (valor == soma){

printf("É número perfeito.\n"); }else{

printf("Não é número perfeito.\n"); }

return 0; }

(10)

Dadas duas palavras (cadeia de caracteres) com no máximo 15 caracteres, vericar se uma é a permutação circular da outra, não importando se os caracteres individuais são maiúsculos ou minúsculos. Para se obter a permutação circular de uma cadeia, transfere-se o primeiro caracter do início para o m da mesma, o segundo caracter para a primeira posição e assim sucessivamente. Por exemplo, para a palavra AMORA, a permutação circular é MORAA.

Exemplo de uso #1

Entre com a primeira palavra: Amora Entre com a segunda palavra: Moraa

A segunda palavra eh permutação circular da primeira!

Exemplo de uso #2

Entre com a primeira palavra: Casa Entre com a segunda palavra: AMOR

A segunda palavra nao eh permutação circular da primeira!

(11)

(#4) Código

#include <stdio.h> #include <string.h> #include <ctype.h> #define SIZEPAL 15 intmain() {

charp1[SIZEPAL+1], p2[SIZEPAL+1], c1, c2;

intflag, t1, t2, t, i; fgets(p1, SIZEPAL, stdin); t1=strlen(p1);

if(p1[t1-1]=='\n'){ p1[t1-1]='\0'; t1=strlen(p1); }

fgets(p2, SIZEPAL, stdin); t2=strlen(p2); if(p2[t2-1]=='\n'){ p2[t2-1]='\0'; t2=strlen(p2); } flag= 0; if(t2!=t1){ flag= 1; }else{ t=t2; for(i= 0; i<(t-1); i++){ c1=tolower(p1[i+1]); c2=tolower(p2[i]); if(c2!=c1){ flag= 1; } } c1=tolower(p1[0]); c2=tolower(p2[t-1]); if(c2!=c1){ flag= 1; } } if(flag== 0){ printf("[%s] _é_ permuta de [%s]\n", p2, p1); }else{

printf("[%s] não é permuta de [%s]\n", p2, p1); }

return0; }

(12)

Faça um programa que lê um conjunto de 20 valores inteiros e os armazena em 2 arrays unidimensionais conforme forem pares ou ímpares. Imprima o vetor com os elementos pares e em seguida aquele com os elementos ímpares. Cuide para imprimir somente os elementos válidos destes vetores. Lembre-se que o usuário tem liberdade de escolha para os 20 números, eles podem inclusive serem todos pares ou ímpares.

Abaixo exemplo de execução:

Entre com os 20 valores:

12 33 1 9 87 44 2 32 14 126 3 13 21 22 4 66 7 18 11 20 Elementos do array com valores pares:

12 44 2 32 14 126 22 4 66 18 20

Elementos do array com valores impares: 33 1 9 87 3 13 21 7 11

(13)

(#5) Código

#include <stdio.h> #define NVAL 20 intmain(){ intpares[NVAL]; intimpares[NVAL]; intn_pares= 0; intn_impares= 0; inti; intvalor;

printf("Entre com os 20 valores:\n");

for(i= 0; i<NVAL; i++){ scanf("%d",&valor);

if(valor% 2 == 0){ pares[n_pares]=valor; n_pares++; }else{ impares[n_impares]=valor; n_impares++; } }

printf("Elementos do array com valores pares:\n");

for(i= 0; i<n_pares; i++){ printf("%d ", pares[i]); }

printf("\n");

printf("Elementos do array com valores impares:\n");

for(i= 0; i<n_impares; i++){ printf("%d ", impares[i]); } printf("\n"); return0; }

(14)

Fazer um programa que leia o valor de X no intervalo (-0.5,0.75) e de Y no intervalo [-1,1] e calcule e imprima na tela o resultado do somatório abaixo. Faça consistência dos valores de entrada.

S = X 25∗ Y1 1 + X24∗ Y2 2 + ... + X2∗ Y24 24 + X1∗ Y25 25 14 / 15

(15)

(#6) Código

#include <stdio.h> #include <stdlib.h> #include <math.h>

intmain() {

doubleS, termo, x, y, numx, numy;

intden, expx, expy, sinal;

do{ printf("Valor de x: "); scanf("%lf",&x); }while(x<= -0.5 ||x>= 0.75); do{ printf("Valor de y:"); scanf("%lf",&y); }while(y< -1 || y> 1);

expx= 25; expy= 1; sinal= 1; S= 0;

for(den= 1; den< 26; den++) { numx=pow(x, expx);

numy=pow(y, expy); termo=sinal*numx*numy/den; S+=termo; expx-= 1; expy+= 1; } printf("Valor de S: %lf\n", S); return0; }

Referências

Documentos relacionados

A aprendizagem em química estabelece portanto grande relação com o desenvolvimento da cidadania (FARIA E REIS, 2016; SANTOS E ESCHNETZLER, 1996; SILVA, 2014)

Essa comunicação sem pressu- postos, que torna impossível a literatura, mas ao mesmo tempo a relança continuamente além das suas conigurações históricas, não comunica nada,

Associations between chewing pattern, presence of atypical contractions in mastication and deglutition, presence of noise and standard mouth opening were analyzed.. There was

Uma breve exposição da metodologia do Imam Malik é de interesse para o entendimento da metodologia geral usada pelos juristas em suas decisões. Mas o Alcorão não pode ser

Acompanha molho chilli da casa (picante) com queijo cheddar!. Batatas fritas com casca, cortadas em pedaços grandes, temperadas com sal, páprica e pimenta

Aparecendo sintomas durante o trabalho (febre, tosse seca, dor de garganta, coriza, dificuldade de respirar, falta de paladar e/ou olfato), comunicar imediatamente a administração

Explica as razões para o impacto geral (positivo, neutro ou negativo) que a realização deste projeto teve no teu estudo do repertório aulas individuais

A escolha da carga 2 é feita para mostrar que a entrada de uma carga resistiva desequilibrada (monofásica) no sistema não deve alterar a compensação da potência reativa