• 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

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,

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

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

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