Mudanças entre as edições de "AULA 18 - Programação 1 - Graduação"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
(6 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
 
=Exercícios Adicionais ponteiros=
 
=Exercícios Adicionais ponteiros=
  
1.Implementar um programa para ler dados para dentro das variáveis x e y e somar o conteúdo das mesmas colocando o resultado em x SEM
+
1. Implementar um programa para ler dados para dentro das variáveis x e y e somar o conteúdo das mesmas colocando o resultado em x SEM
 
referenciar estas variáveis no scanf ou na expressão de soma.
 
referenciar estas variáveis no scanf ou na expressão de soma.
  
Linha 12: Linha 12:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
2.Implementar uma função que compara duas strings passadas como parâmetro. A função retorna 0 se as strings forem iguais e 1 se diferentes.
+
2. Implementar uma função que compara duas strings passadas como parâmetro. A função retorna 0 se as strings forem iguais e 1 se diferentes.
 
Usar ponteiros.
 
Usar ponteiros.
  
3.Implementar uma função que recebe como parâmetro o endereço de duas variáveis float que contêm a parte real e imaginária de um número complexo no formato polar (ângulo em radianos). A função deve converter do formato polar retangular colocando a coordenada x no primeira variável cujo endereço foi fornecido como parâmetro e a coordenada y na segunda variável.
+
3. Implementar uma função que recebe como parâmetro o endereço de duas variáveis float que contêm a parte real e imaginária de um número complexo no formato polar (ângulo em radianos). A função deve converter do formato polar retangular colocando a coordenada x no primeira variável cujo endereço foi fornecido como parâmetro e a coordenada y na segunda variável (Olhar AULA 15).
  
 
<syntaxhighlight lang=c>
 
<syntaxhighlight lang=c>
  
void converte_polar_retang(float *parte1, float parte2)
+
void converte_polar_retang(float *parte1, float *parte2)
 
{
 
{
 
}
 
}
Linha 33: Linha 33:
 
</syntaxhighlight>  
 
</syntaxhighlight>  
  
4.Implemantar uma funçao que recebe como parâmetro o endereço de duas variáveis do tipo char e
+
4. Implemantar uma função que recebe como parâmetro o endereço de duas variáveis do tipo char e
após a chamada da função os valores das variáveis devem estar maiúsculos(caso elas contenham letras minúsculas).
+
após a chamada da função os valores das variáveis devem ser convertidos para caixa alta (maiúsculas).
  
 
<syntaxhighlight lang=c>
 
<syntaxhighlight lang=c>
Linha 48: Linha 48:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
5.Implementar uma função que recebe uma string contendo uma cadeia de caracteres com dígitos numéricos e retorna o valor inteiro da string. Usar ponteiros.
+
5. Implementar uma função que recebe uma string contendo uma cadeia de caracteres com dígitos numéricos e retorna o valor inteiro da string. Usar ponteiros.
  
 
<syntaxhighlight lang=c>
 
<syntaxhighlight lang=c>
Linha 67: Linha 67:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
6.O código abaixo implementa a série responsável pelo cálculo de uma raiz quadrada de um número.
+
6. O código abaixo implementa a série responsável pelo cálculo da raiz quadrada de um número.
  
 
<syntaxhighlight lang=c>
 
<syntaxhighlight lang=c>
Linha 97: Linha 97:
 
     return(recorre);     
 
     return(recorre);     
 
}     
 
}     
 +
</syntaxhighlight>
 +
 +
7. O código abaixo implementa uma variação em que número é passado por parâmetro através do programa principal e retorna a raiz quadrada de um número para o SO.
 +
 +
<syntaxhighlight lang=c>
 +
#include <stdio.h>
 +
#include <stdlib.h>
 +
 +
float raiz_quadrada (float numero)
 +
{
 +
    int n;
 +
    float recorre = numero;
 +
 +
    for (n = 0; n < 10; ++n)
 +
          recorre = recorre/2 + numero/(2*recorre);
 +
 +
    return(recorre);   
 +
}
 +
 +
int main( int argc, char *argv[])
 +
 +
    float numero;
 +
 +
    if(argv[1]==NULL){
 +
printf("\n%s: falta número",argv[0]);
 +
    }
 +
   
 +
    numero=atof(argv[1]);
 +
 +
    printf("\n%.4f \n",raiz_quadrada(numero));
 +
 +
    return(0);
 +
}
 
</syntaxhighlight>
 
</syntaxhighlight>
  

Edição atual tal como às 13h20min de 21 de maio de 2015

Exercícios Adicionais ponteiros

1. Implementar um programa para ler dados para dentro das variáveis x e y e somar o conteúdo das mesmas colocando o resultado em x SEM referenciar estas variáveis no scanf ou na expressão de soma.

#include <stdio.h>
main()
{
  float x,y;
}

2. Implementar uma função que compara duas strings passadas como parâmetro. A função retorna 0 se as strings forem iguais e 1 se diferentes. Usar ponteiros.

3. Implementar uma função que recebe como parâmetro o endereço de duas variáveis float que contêm a parte real e imaginária de um número complexo no formato polar (ângulo em radianos). A função deve converter do formato polar retangular colocando a coordenada x no primeira variável cujo endereço foi fornecido como parâmetro e a coordenada y na segunda variável (Olhar AULA 15).

void converte_polar_retang(float *parte1, float *parte2)
{
}

main()
{
  float num1=1.5, num2=10.6;

  /*chamar a função aqui */

  /* imprimir os valores de num1 e num2 aqui */
}

4. Implemantar uma função que recebe como parâmetro o endereço de duas variáveis do tipo char e após a chamada da função os valores das variáveis devem ser convertidos para caixa alta (maiúsculas).

main()
{
  char alfa='a', beta='b';

  capitaliza(&alfa, &beta);
  
  /* aqui os valores de alfa e beta deverão ser A e B */
}

5. Implementar uma função que recebe uma string contendo uma cadeia de caracteres com dígitos numéricos e retorna o valor inteiro da string. Usar ponteiros.

int a_toi(char *p)
{
}

main()
{
  char *p="123";
  int x;

  x = a_toi(p);
  
  /* neste ponto x deve conter 123 */
}

6. O código abaixo implementa a série responsável pelo cálculo da raiz quadrada de um número.

#include <stdio.h>

float raiz_quadrada(float numero);

int main( int argc, char **argv)
{  
    float numero;
   
    printf("Entre com um número positivo por favor : ");
    scanf("%f",&numero);
   
    printf("A raiz quadrada de %.3f é %.5f \n",numero,raiz_quadrada(numero));

    return(0);
}


float raiz_quadrada (float numero)
{
    int n;
    float recorre = numero;
   
    for (n = 0; n < 10; ++n)
          recorre = recorre/2 + numero/(2*recorre);
           
    return(recorre);    
}

7. O código abaixo implementa uma variação em que número é passado por parâmetro através do programa principal e retorna a raiz quadrada de um número para o SO.

#include <stdio.h>
#include <stdlib.h>
 
float raiz_quadrada (float numero)
{
    int n;
    float recorre = numero;
 
    for (n = 0; n < 10; ++n)
          recorre = recorre/2 + numero/(2*recorre);
 
    return(recorre);    
}
 
int main( int argc, char *argv[])
{  
    float numero;

    if(argv[1]==NULL){
	printf("\n%s: falta número",argv[0]);
    }
    
    numero=atof(argv[1]);

    printf("\n%.4f \n",raiz_quadrada(numero));
 
    return(0);
}


<< Aula 18 >>