• Nenhum resultado encontrado

imprimir seus quadrados.

N/A
N/A
Protected

Academic year: 2021

Share "imprimir seus quadrados."

Copied!
12
0
0

Texto

(1)

1)

Dada uma seqüência de números inteiros não-nulos, seguida por 0,

imprimir seus quadrados.

#include <stdio.h>

main() {

int numero, /* usada para leitura da sequencia */ quadrado; /* guarda o quadrado do numero lido */

printf("\n\tCalculo dos quadrados de uma sequencia de numeros\n"); printf("\nEntre com uma sequencia de numeros inteiros nao-nulos, seguida por 0:\n");

scanf("%d", &numero);

while (numero != 0) {

quadrado = numero * numero;

printf("O quadrado do numero %d e' %d\n", numero, quadrado); scanf("%d", &numero);

} }

2)

Dado um número inteiro positivo n, calcular a soma dos n primeiros

números inteiros positivos.

#include <stdio.h>

main() {

int n, /* guarda o numero dado */ i, /* contador */ soma; /* guarda as somas parcias */

printf("\n\t Calculo da soma dos n primeiros inteiros positivos\n"); /* Inicializacoes */ printf("\nDigite o valor de n: "); scanf("%d", &n); soma = 0; i = 1; /* Calculo da soma */ while (i <= n) { soma = soma + i; i = i + 1; } /* Escreve a resposta */

printf("A soma dos %d primeiros inteiros positivos e' %d\n", n, soma);

}

(2)

3)

Dados um inteiro x e um inteiro não-negativo n, calcular x

n

.

#include <stdio.h>

main() {

int x, /* base */ n, /* expoente */ i; /* numero de multiplicoes feitas */

/* Inicializacoes */

printf("\n\tCalculo de potencias\n"); printf("Digite a base (inteiro): "); scanf("%d", &x);

printf("Digite o expoente (inteiro nao-negativo): "); scanf("%d", &n); i = 0; /* Calculo da potencia */ while (i < n) { x = x * x; i = i + 1; }

printf("\nO valor de %d elevado a %d= %d\n", x, n, x); }

4) Dados dois números inteiros positivos, determinar o máximo divisor

comum entre eles usando o algoritmo de Euclides.

#include <stdio.h> main() { int anterior, atual, resto;

printf("Digite os dois inteiros positivos: "); scanf("%d %d" , &anterior, &atual);

printf("MDC(%d,%d) = ", anterior, atual);

resto = atual % anterior; while (resto != 0) {

resto = anterior % atual; anterior = atual; atual = resto; } printf("%d\n", anterior); }

(3)

5)

Dado um número natural na base binária, transformá-lo para a base

decimal.

#include <stdio.h>

main() {

int num, /* numero dado (na base 2) */ pot2, /* guardara uma potencia de 2 */ final; /* numero dado convertido para base 10 */

printf("Digite o numero a ser transformado da base 2 para a base 10: "); scanf("%d", &num); /* inicializacoes */ final = 0; pot2 = 1;

printf("%d na base 10 e': ", num);

while (num != 0){

final = final + num % 10 * pot2; /* processa um digito binario */ num = num / 10; pot2 = pot2 * 2; } printf("%d\n", final); }

6)

Dizemos que um número natural n é palíndromo, se o 1º algarismo

de n é igual ao seu último algarismo, o 2º algarismo de n é igual ao

penúltimo algarismo, e assim sucessivamente.

Exemplos:

o

567765 e 32423 são palíndromos.

o

567675 não é palíndromo.

(4)

#include <stdio.h>

main() {

int num, /* numero dado */ aux, /* guarda o pedaco do numero que resta inverter */ reverso; /* guarda o numero de tras para frente */

printf("Digite um natural: "); scanf("%d", &num); /* inicializacoes */ aux = num; reverso = 0; while (aux != 0) {

reverso = reverso * 10 + aux % 10; /* acrescenta mais um digito a direita */

aux = aux / 10; /* joga fora esse digito */ }

if (reverso == num)

printf("%d e' palindrome\n", num); else

printf("%d nao e' palindrome\n", num);

}

7)

Dados dois vetores x e y, ambos com n elementos, determinar o

produto escalar desses vetores.

#include <stdio.h>

#define MAX 10

main() { int i, n;

float prod, x[MAX], y[MAX];

printf("Digite o tamanho dos vetores: "); scanf("%d", &n);

printf("Digite os componentes do vetor x: "); for (i = 0; i < n; i++)

scanf("%f", &x[i]);

printf("Digite os componentes do vetor y: "); for (i = 0; i < n; i++)

scanf("%f", &y[i]); prod = 0;

for (i = 0; i < n; i++) prod = prod + x[i] * y[i];

printf("Produto escalar desses vetores: %f\n", prod);

(5)

8)

Dadas dois strings (um contendo uma frase e outro contendo uma

palavra), determine o número de vezes que a palavra ocorre na frase.

Exemplo:

Para a palavra ANA e a frase :

ANA E MARIANA GOSTAM DE BANANA

Temos que a palavra ocorre 4 vezes na frase.

Resolver (Desafio).

9)

Simule a execução do programa abaixo destacando a sua saída.

Dados:

7

10 3 6 12 13 15

#include <stdio.h int main() {

int n, inic, fim, i, aux, para, a[100];

printf("Digite n: "); scanf("%d", &n); printf("n = %d\n", n);

printf("Digite uma sequencia de %d numeros.\n", n); for (i = 0; i < n; i++) { scanf("%d", &a[i]); printf("%d ", a[i]); } printf("\n"); inic = 0; fim = n - 1; aux = a[inic]; while (inic < fim) { para = 0;

while ((inic < fim) && !para) { if (a[fim] <= aux) para = 1; else fim = fim - 1; } if (para) { a[inic] = a[fim]; inic = inic + 1; para = 0;

while ((inic < fim) && !para) { if (a[inic] <= aux) inic = inic + 1; else para = 1; } if (para) { a[fim] = a[inic]; fim = fim - 1; } } for (i = 0; i < n; i++)

(6)

printf("%d ", a[i]); printf("\n"); } a[inic] = aux; for (i = 0; i < n; i++) printf("%d ", a[i]); printf("\n"); return 0; } Digite n: 7 n = 7

Digite uma sequencia de 7 numeros. 10 3 6 12 13 7 15

7 3 6 12 13 12 15 7 3 6 12 13 12 15 7 3 6 10 13 12 15

10)

Usando a função do item anterior, faça um programa que lê dois

inteiros positivos a e b e verifica se o menor deles é segmento do outro.

Exemplo:

a

b

567890

678

=> b é segmento de a

1243

2212435 => a é segmento de b

235

236

=> um não é segmento do outro

#include <stdio.h> #define TRUE 1 #define FALSE 0

int encaixa(int a, int b) { while (b != 0 && a % 10 == b % 10) { a = a/10; b = b/10; } if (b == 0) return TRUE; else return FALSE; } main() {

int a, b, subseq, maior, menor;

printf("Digite dois inteiros positivos: "); scanf("%d %d", &a, &b);

if (a > b) { maior = a; menor = b;

(7)

} else { maior = b; menor = a; } subseq = FALSE;

while (maior >= menor) {

if (encaixa(maior,menor) == TRUE) subseq = TRUE;

maior = maior/10; }

if (subseq == TRUE)

printf("%d e' segmento de %d\n",b,a); else

printf("%d nao e' segmento de %d\n",b,a);

}

11)

Sabe-se que um número da forma n

3

é igual a soma de n ímpares

consecutivos.

Exemplo: 1

3

= 1, 2

3

= 3+5, 3

3

= 7+9+11, 4

3

= 13+15+17+19,...

Dado m, determine os ímpares consecutivos cuja soma é igual a n

3

#include <stdio.h>

main() {

int m, /* dado de entrada */ n, i,

inicio; /* primeiro dos impares de uma sequencia que soma n^3 */ printf("Digite o valor de m: "); scanf("%d", &m); inicio = 1; for (n = 1; n <= m; n++) { printf("%d*%d*%d = %d", n, n, n, inicio); for (i = 1; i < n; i++)

printf("+%d", inicio + 2 * i);

inicio = inicio + 2 * n; /* inicio da proxima sequencia */ printf("\n");

}

(8)

12)

Os pontos (x,y) que pertencem à figura H (abaixo) são tais que x > 0,

x > 0 e x

2

+ y

2

< 1.

Dados n pontos reais (x,y), verifique se cada ponto pertence ou não a H.

#include <stdio.h>

main() { int i, n; float x, y;

printf("Digite o numero de pontos: "); scanf("%d", &n);

for (i = 0; i < n; i++){

printf("Digite as coordenadas de um ponto: "); scanf("%f %f", &x, &y);

if (x >= 0 && y >= 0 && x*x + y*y <= 1)

printf("O ponto (%f,%f) pertence a regiao.\n", x, y); else

printf("O ponto (%f,%f) nao pertence a regiao.\n", x, y); }

}

13)

Escrever uma função que conte o número de vogais de uma string.

int contaVogais (char s[]) { int numVogais, i;

char *vogais;

vogais = "aeiouAEIOU"; numVogais = 0;

for (i = 0; s[i] != '\0'; ++i) { char ch = s[i]; int j; for (j = 0; vogais[j] != '\0'; ++j) { if (vogais[j] == ch) { numVogais += 1; break; } } } return numVogais; }

(9)

14)

Dados três números, imprimi-los em ordem crescente.

#include <stdio.h>

main() {

int n1, n2, n3; /* dados de entrada */

printf("Digite tres numeros: "); scanf("%d %d %d", &n1, &n2, &n3);

/* Existem 6 possiveis ordens para imprimior os numeros lidos */ if (n1 <= n2 && n2 <= n3)

{

printf("A ordem crescente: %d %d %d\n", n1, n2, n3); }

else if (n1 <= n3 && n3 <= n2) {

printf("A ordem crescente: %d %d %d\n", n1, n3, n2); }

else if (n2 <= n1 && n1 <= n3) {

printf("A ordem crescente: %d %d %d\n", n2, n1, n3); }

else if (n2 <= n3 && n3 <= n1) {

printf("A ordem crescente: %d %d %d\n", n2, n3, n1); }

else if (n3 <= n1 && n1 <= n2) {

printf("A ordem crescente: %d %d %d\n", n3, n1, n2); }

else /* n3 <= n2 && n2 < n1 */ {

printf("A ordem crescente: %d %d %d\n", n3, n2, n1); }

(10)

15)

Fazer uma rotina que recebe um string como parâmetro e imprima

quantas palavras (separadas por espaços em branco) o mesmo contém.

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

main() {

char str1[40];

gets(str1);

int i = 0;

int contador = 0;

int x = strlen(str1);

while(i<=x){

if(str1[i] == ' ')

contador++;

i++;

}

printf("%d\n",contador+1);

}

16)

Escrever um programa que recebe uma string e um caractere como

parâmetro e remove todas as ocorrências do caractere da string

substituindo por “*”.

#include <stdio.h> #include <stdlib.h> #include <string.h> main() { char str1[30]; char str2[30]; char str3[30]; gets(str1); gets(str2); int i=0; int j=0; while(str1[i] != '\0'){ if(str1[i] != str2[0]) { str3[i] = str1[i]; }else { str3[i] = '*'; } i++; } str3[i] = '\0'; printf("%s\n",str3); }

(11)

17)

Fazer um programa que lê um string qualquer de no máximo 80

caracteres e imprima:

- Quantos caracteres tem o string;

- Quantos caracteres são números;

- Quantos caracteres são minúsculas.

#include <stdlib.h> #include <string.h> #include <cctype> main() { char palavra[80]; char t[1]; char p[1]; char s; gets(palavra); int conta_num =0; int x = strlen(palavra); int conta_mais = 0; for(int i=0;i<=x-1;i++) { s = palavra[i]; if(isdigit(s)) { conta_num++; } if(palavra[i] != ' '){ t[0] = toupper(palavra[i]); p[0] = palavra[i]; if(p[0] == t[0] ) conta_mais++; } } printf("Quantidade de caracteres %d\n",x); printf("Quantidade de numeros %d\n",conta_num);

printf("Quantidade de letras Maiusculas %d\n",conta_mais); }

18)

Fazer um programa que solicite um número inteiro e soletre o

mesmo na tela. (resolver)

Ex:

(12)

19)

Fazer uma função que calcule a equação abaixo (Resolver):

n

x

x

f

(

)

a) Calcular a média das raízes

b) Encontrar a maior raiz

c) Determinar quais valores de x não foram possíveis calcular

as raízes.

20)

Escrever um programa que use a função seno para emite os

valores que geram o gráfico abaixo (Resolver).

Observação: Não é necessário plotar o gráfico em sim

calcular os valores que geram o mesmo.

Considere: θ [0 a 360] em radiano e precisão dupla 7 casas.

-1,5 -1 -0,5 0 0,5 1 1,5

Referências

Documentos relacionados

Esse avan¸co vem sendo feito de forma sistem´atica, convergindo, quem sabe, para um SGBD Sistema de Gerenciamento de Banco de Dados totalmente espacial [RSV02], capaz de atender

Diante deste fato, repensar os procedimentos de gestão de pessoas que podem tornar o sistema mais eficiente, promover a capacitação, treinamentos e principalmente, a gestão por

For each of the SRi, the distribution of the number of events derived by the pseudoexperiments is used to calculate a two-sided p-value (as shown for the HAD box in Fig. 15

O quarto e último capítulo é o responsável por trazer toda a narrativa da construção da série fotográfica Crooked nature, pontuando os principais trabalhos da jornada acadêmica,

acessíveis, compatível com o plano diretor no qual está inserido, que disponha sobre os passeios públicos a serem implantados ou reformados pelo poder público, com vistas a

Para isso, o Grupo de Estudos Arqueométrico do IPEN-CNEN/SP, vêm estudando os resultados por meio de diversos métodos estatísticos tais como análise de agrupamento, análise

A troca de experiências através da observação da aula e a análise crítica após a aula bem como a autoavaliação que os professores fazem sobre sua prática vem mostrar até que