Buscar

Trabalho Computação Cientifica

Prévia do material em texto

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE SÃO PAULO 
CAMPUS VOTUPORANGA 
 
 
 
Emily G. Oliveira 
Gabriela Rossini 
Sheila G. Barbosa 
 
 
 
 
 
Trabalho 2 
 
 
 
 
 
Prof. Dr. Cecilio Merlotti Rodas 
 Computação Científica (CICO) 
 
 
 
Votuporanga 
Dez/2017 
 
1. Comente as principais características da programação orientada a objetos. 
Citar as referências. 
R: O termo Programação Orientada a Objetos (POO) foi criado por Alan Kay. 
Simula 67 foi a primeira linguagem a a usar ideias do POO. 
Alguns exemplos de linguagens modernas que adotaram essas ideias são 
Java, C#, C++, PHP, Ruby, Python e Lisp. 
A POO foi criada para tentar aproximar o mundo real do mundo virtual. O 
programador cria representações abstratas para os objetos do mundo real. Os 
objetos conversam uns com os outros através do envio de mensagens. 
 
 
2. . Resumidamente, a programação paralela procura criar condições para que 
um determinado programa (ou processamento computacional) possa ser 
implementado de tal forma que permita que sua execução aconteça em 
diversas máquinas. Procure identificar as vantagens de se utilizar essa técnica. 
 
 
R: As vantagens são: 
Solução de aplicações complexas: 
• Análise de local para perfuração de poços de petróleo – 
• Simulações físicas 
• Análise de algoritmos para criptografia 
Diversos níveis de concorrência em hardware 
 
 
 
3 . //Faça um programa que crie um vetor de 50 posições, atribuindo valores 
inteiros, positivos, 
//aleatoriamente, com a função rand(). Os valores aleatórios devem estar em 0 
e 500. Em seguida criar 
//uma matriz 5x10 obedecendo o seguinte critério: a) criar um laço para varrer o 
vetor criado copiando 
//os valores do vetor para a matriz; cada um dos números do vetor vai assumir 
uma posição na matriz 
//somente, e somente se, forem maiores que 250, caso contrário, o valor 
inserido na posição será 0 
//(zero). Ao final mostrar os valores do vetor e os valores na matriz. 
 
#include<stdio.h> 
#include<stdlib.h> 
#include<string.h> 
#include<locale.h> 
#include<time.h> 
 
main(){ 
 
int vetor[50], i=0; 
int matriz[5][10], k, j; 
 
srand(time(NULL)); 
 
for(i=0; i<50; i++){ 
 
 vetor[i]=rand()%501; 
} 
i=0; 
 
for (k=0; k<5; k++){ 
 for (j=0; j<10; j++){ 
 
 if (vetor[i] >= 250){ 
 matriz[k][j] = vetor[i]; 
 i++; 
 } 
 else { 
 matriz[k][j] = 0; 
 i++; 
} 
 } 
 } 
for (k=0; k<5; k++){ 
 for (j=0; j<10; j++){ 
 printf("%d\t", matriz[k][j]); 
 } 
 printf("\n\n"); 
} 
} 
 
 
4. //Faça um programa que crie uma função para verificar se, dadas as 
medidas de 3 retas, formam um 
//triângulo. Sabendo que para formar um triângulo a soma das retas opostas 
precisa ser maior que o 
//valor da reta observada. Crie a função e aplique seu uso no código do 
programa. 
 
 
 
#include<stdio.h> 
#include<locale.h> 
#include<stdlib.h> 
#include<string.h> 
 
main(){ 
 
 setlocale(LC_ALL, "Portuguese"); 
 
 float l1, l2, l3; 
 
 printf("\n\tDigite o primeiro lado\n\t"); 
 scanf("%f", &l1); 
 
 printf("\n\tDigite o segundo lado\n\t"); 
 scanf("%f", &l2); 
 
 printf("\n\tDigite o terceiro lado\n\t"); 
 scanf("%f", &l3); 
 
system("pause"); 
 
if (((l1+l2) > l3) || ((l1+l3) > l2)) 
 printf("\t\nÉ possível formar um triângulo"); 
 
else if ((l2+l3) > l1) 
 printf("\t\nÉ possível formar um triângulo"); 
 
else 
 printf("\t\nÉ impossível formar um triângulo"); 
 
} 
 
 
5. //Faça um programa que crie uma função para, passar 2 parâmetros, sendo 
eles números reais. 
//A função deverá retornar qual dos dois valores é o maior. Criar a função e 
aplicar o seu uso no código do programa. 
 
 
#include<stdio.h> 
#include<locale.h> 
 
float numeros(float num1, float num2){ 
 
float numeros; 
} 
 
main(){ 
 
 setlocale(LC_ALL, "Portuguese"); 
 
 float a, b; 
 printf("\tDigite o primeiro valor:\n"); 
 scanf("%f", &a); 
 
 printf("\tDigite o segundo valorl:\n"); 
 scanf("%f", &b); 
 
if (a>b) 
 printf("\t\nO primeiro número é maior que o segundo"); 
 
if (a>b) 
 printf("\t\nO segundo número é maior que o primeiro"); 
} 
 
 
6. //Fazer uma função que receba um caractere como parâmetro e retorne 
verdadeiro caso o caractere 
//seja uma consoante, e falso caso seja uma vogal. 
 
 
 
 
#include<stdio.h> 
#include<stdlib.h> 
#include<string.h> 
#include<locale.h> 
#include<time.h> 
 
 
int alfabeto (char v[20]){ 
 
 if (stcmp(v, "a") == 0 || strcmp(v, "e") == 0 || strcmp (v, "i")== 0 ||strcmp(v, 
"o")==|| strcmp(v, "u")==0){ 
 
 printf("falso"); 
 
 return 0; 
 
 } 
 else { 
 printf("verdadeiro"); 
 return 0; 
 } 
} 
 
int main(){ 
 
 char letra [30]; 
 
 printf("Digite uma letra do alfabeto: "); 
 
 gets (letra); 
 
 alfabeto(letra); 
} 
 
7. //Um estacionamento cobra uma taxa mínima de R$3,00 para estacionar por 
três horas. Um adicional 
//de R$2,00 por hora não necessariamente inteira é cobrado após as três 
primeiras horas. Escreva um 
//programa que calcule e exiba as taxas do estacionamento para cada cliente 
que estacionou nessa 
//garagem ontem. Você deve inserir as horas de estacionamento para cada 
cliente. O programa deve 
//exibir a cobrança para o cliente atual e calcular e exibir o total recebido no 
final do dia. O programa 
//deve usar uma função valorAPagar para determinar a cobrança para cada 
cliente. Considere que você 
//não saiba a quantia de clientes, portanto crie um laço while. 
 
 
 
#include <stdio.h> 
#include <stdlib.h> 
#include <locale.h> 
#include <time.h> 
 
 
 
void valorAPagar (){ 
 
 int hora, preco, adicional, total, i, final, resposta; 
 char nome[40]; 
 adicional=2; 
 final=0; 
 resposta=1; 
 i=0; 
 total=0; 
 while(resposta==1){ 
 
 printf("\nDigite o nome do cliente\n"); 
 scanf("%s",&nome); 
 printf("\nDigite quantas horas %s ficou estacionado ontem:\n", nome); 
 scanf("%d", &hora); 
 
 if(hora<=3){ 
 preco=3; 
 total=total+preco; 
 i++; 
 final=final+hora; 
 
 } 
 else{ 
 preco=(3+((hora-3)*adicional)); 
 total=total+preco; 
 final=final+hora; 
 i++; 
 } 
 
 
 printf("\nO preço a ser pago por %s é de R$ %d,00\n", nome, preco); 
 
 printf("\nDeseja continuar cadastrando? 1 para sim 0 para não\n"); 
 scanf("%d", &resposta); 
 
 } 
 
 printf("\nOntem %d cliente estacionaram\n",i); 
 printf("\nCom um total de %d horas estaciondas\n",final); 
 printf("\nO total recebido ontem foi de R$%d,00\n",total); 
 printf("\nPrograma Finalizado! Tenha um bom dia...\n"); 
 } 
 
 
int main() 
{ 
 setlocale (LC_ALL, "Portuguese"); 
 valorAPagar(); 
 getchar(); 
 return(0); 
} 
 
8. //Escreva uma função desenhaQuadrado(argumento 1, argumento 2) que 
exibe um quadrado sólido 
//(o mesmo número de linhas e colunas). O caractere utilizado par preencher o 
quadrado e o valor do 
//lado são passados como argumentos (parâmetros) para a função. Por 
exemplo, se o caractere for x 
//e o valor do lado for 3, a função deverá exibir: 
//xxx 
//xxx 
//xxx 
 
 
 
 
 
 
#include <stdlib.h> 
#include <stdio.h> 
#include <time.h> 
#include <locale.h> 
#include <string.h> 
 
 
 
void desenhaQuadrado(char x,inta){ 
 
 int i, k; 
 
 for(i=0;i<a;i++){ 
 for(k=0;k<a;k++) 
 
 printf("%c ", x); 
 
 printf("\n");} 
 
} 
 
 
int main(){ 
 
 setlocale (LC_ALL,"Portuguese"); 
 
 char bloco; 
 int lado,i,k; 
 
 printf("Digite o caracter que ira desenhar o bloco: "); 
 scanf("%c%*c", &bloco); 
 
 printf("Digite o lado do quadrado : "); 
 scanf("%d%*c", &lado); 
 
 printf("\n\n"); 
 desenhaQuadrado(bloco,lado); 
 
} 
 
9. //A prefeitura de uma cidade fez uma pesquisa entre os seus habitantes, 
coletando dados sobre o 
//salário e número de filhos. Faça um procedimento que leia esses dados para 
um número não 
//determinado de pessoas e retorne a média de salário da população, a média 
do número de filhos, o 
//maior salário e o percentual de pessoas com salário até R$950,00 
 
 
 
#include <stdio.h> 
#include <stdlib.h> 
#include <locale.h> 
#include <time.h> 
#include <locale.h> 
 
 
 
main() 
{ 
 
 setlocale(LC_ALL, "Portuguese"); 
 
 
 float salario, mediaSalario, mediaFilho, porcentagem; 
 int filho,i, r, t, s; 
 int resposta=1; 
 char nome[40]; 
 
 
 i=0; 
 r=0; 
 s=0; 
 t=0; 
 
 
 while (resposta==1){ 
 i++; 
 printf("\nDigite o nome da pessoa:\n"); 
 scanf("%s%*c", &nome); 
 printf("\nDigite a quantidade de filhos que %s possui.\n", 
nome); 
 scanf("%d%*c", &filho); 
 printf("\nDigite em o salário de %s, em reais\n", nome); 
 scanf("%f", &salario); 
 
 
 t=(salario+t); 
 r=(r+filho); 
 if(salario<=950){ 
 s++; 
 } 
 printf("\nDeseja continuar cadastrando? 1 para sim 0 para 
não.\n"); 
 scanf("%d%*c", &resposta); 
 } 
 mediaSalario=(t/i); 
 mediaFilho=(r/i); 
 porcentagem=(s/i); 
 
 printf("\nA media salarial é: %5.2f\n", mediaSalario); 
 printf("\nA media do numero de filhos é: %5.2f\n", mediaFilho); 
 printf("\nA porcentegem de pessoas que ganha até 950.00 reais é: 
%5.3f\n", porcentagem); 
 
 
 system(pause); 
 
 
} 
 
10. //Faça um programa criando uma função que recebe, por parâmetro, um 
valor N e calcula e escreve 
//a tabuada de 1 até N. Mostre a tabuada na forma: 
//1 x N = N 
//2 x N = 2N 
 
 
 
#include <stdio.h> 
#include <stdlib.h> 
#include <locale.h> 
#include <time.h> 
 
 
void tabuada (){ 
 
 
 int valor, N, a,b; 
 
 
 
 printf("\nDigite o valor N\n"); 
 scanf("%d",&N); 
 
 i=N; 
 
 while(a==N){ 
 for(b=1;b<=N;b++){ 
 
 valor=b*N; 
 a++; 
 printf("\n%d x %d = %d\n",b,N,valor); 
 } 
 } 
 
 
} 
 
int main() 
{ 
 setlocale (LC_ALL, "Portuguese"); 
 tabuada(); 
 getchar(); 
 return(0); 
} 
 
11. //Faça um programa que crie uma função que determina, por meio de 
passagem de 2 parâmetros 
//(valor inteiro) a quantidade de linhas e colunas de um vetor: montaMatriz(int 
linha, int coluna). 
//Sendo que o primeiro argumento (parâmetro) se refere ao número de linhas e 
o segundo a colunas. 
//O programa deverá criar uma matriz de acordo com o tamanho definido pelo 
usuário (por meio da 
//passagem de parâmetros). Os valores inseridos na matriz deverão ser criados 
aleatoriamente com a 
//função rand(), positivos, inteiros, entra 0 e 200. A função montaMatriz() 
também deverá mostrar os 
//valores criados aleatoriamente na matriz. 
 
 
 
 
 
#include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 
 
 
 
int montaMatriz(int linha, int coluna){ 
 int matriz[linha][coluna], i,j; 
 
 for(i=0;i<linha;i++){ 
 
 for(j=0;j<coluna;j++){ 
 
 
 matriz[i][j]= rand()%201; 
 
 
 
 } 
 
} 
 
 
 printf("\n\nMatriz:"); 
 
 printf("\n\n\n"); 
 
 
 for(i=0;i<linha;i++){ 
 
 for(j=0;j<coluna;j++){ 
 
 printf("%d \t", matriz[i][j]); 
 } 
 printf("\n\n"); 
 
 
 } 
 
return 0; 
} 
 
 
 
int main(){ 
 int a,b; 
 
 printf("\n Digite um numero: "); 
 scanf("%d", &a); 
 
 printf("\n Digite um numero: "); 
 scanf("%d", &b); 
 
 montaMatriz(a,b); 
 
 
 getchar(); 
 return 0; 
} 
 
12. /Faça um programa que crie um arquivo TEXTO em disco, com o nome 
“dados12.txt”, e escreva neste 
//arquivo em disco uma contagem que vá de 1 até 100. 
 
 
 
 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#include <locale.h> 
#include <time.h> 
 
 
int main(){ 
 
 setlocale (LC_ALL, "Portuguese"); 
 
 
 int i; 
 
 
 
 
 char url[] = "\\E:\\Gaby2txt"; 
 
 FILE *primeiro; 
 primeiro = fopen(url, "w"); 
 
 
 for(i=1;i<=100;i++){ 
 printf("\n%d", i); 
 fwrite(&i,sizeof(i),1,primeiro); 
 } 
 
 
 
 fclose(primeiro); 
 printf("\n Programa finalizado"); 
 
 getchar(); 
 return(0); 
 
} 
 
13. //. Faça um programa que leia o arquivo dados12.txt e mostre somente os 
números divisíveis por 3, ou 
//seja, os números cujo resto da divisão seja igual a 0 (zero). 
 
 
 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#include <locale.h> 
#include <time.h> 
 
 
int main(){ 
 
 setlocale (LC_ALL, "Portuguese"); 
 
 
 int i; 
 int resto; 
 
 
 char url[] = "\\E:\\Gaby2\\Arquivo1txt"; 
 
 
 FILE *primeiro; 
 primeiro = fopen(url, "r"); 
 
 
 if(!feof(primeiro)){ 
 
 for(i=1;i<=100;i++){ 
 
 fread(&i,sizeof(i),1,primeiro); 
 
 if(i%3==0){ 
 printf("\n%d\n", i); 
 } 
 
 
 
 } 
 } 
 
 
 
 
 
 
 
 fclose(primeiro); 
 printf("\n\nPrograma terminado"); 
 
 getchar(); 
 return(0); 
 
} 
 
14. //Faça um programa que leia (do teclado) um cadastro de 10 alunos, 
indicando o nome, nota1, nota2. 
//Grave os dados em um arquivo chamado notas.txt. 
 
 
 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#include <locale.h> 
#include <time.h> 
 
 
int main(){ 
 
 setlocale (LC_ALL, "Portuguese"); 
 
 char nome[40]; 
 int idade, i, nota1, nota2; 
 
 
 
 
 char url[] = "\\E:\\Gaby2\\Notas.txt"; 
 
 FILE *primeiro; 
 
 primeiro = fopen(url, "w"); 
 
 for(i=0;i<10;i++){ 
 
 printf("\nDigite o nome do %dº aluno:\n", i+1); 
 scanf("%s%*c", &nome); 
 printf("\nDigite a nota 1 de %s:\n", nome); 
 scanf("%d", &nota1); 
 printf("\nDigite a nota 2 de %s:\n", nome); 
 scanf("%d", &nota2); 
 
 
 fwrite(&nome, sizeof(nome),1,primeiro); 
 fwrite(&nota1, sizeof(nota1),1,primeiro); 
 fwrite(&nota2, sizeof(nota2),1,primeiro); 
 
 } 
 
 
 
 fclose(primeiro); 
 printf("\n Terminado"); 
 
 getchar(); 
 return(0); 
 
} 
 
15. //Faça um programa que leia o cadastro de 10 alunos armazenado no 
arquivo notas.txt do exercício 
//anterior. Calcule e mostre a média de cada aluno. Mostre também se o aluno 
está aprovado ou 
//reprovado, considerando a média de aprovação igual ou superior a 6.0. 
 
 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#include <locale.h> 
#include <time.h> 
 
 
int main(){ 
 
 setlocale (LC_ALL, "Portuguese"); 
 
 char nome[40]; 
 int nota1, nota2;int i; 
 float media; 
 
 
 char url[] = "\\E:\\Gaby2\\Notas\\Nota2.txt"; 
 
 FILE *primeiro; 
 primeiro = fopen(url, "r"); 
 
 
 if(!feof(primeiro)){ 
 
 for(i=0;i<10;i++){ 
 
 fread(&nome,sizeof(nome),1,primeiro); 
 fread(&nota1,sizeof(nota1),1,primeiro); 
 fread(&nota2,sizeof(nota2),1,primeiro); 
 
 media=(nota1+nota2)/2; 
 printf("\nO aluno %s, tem N1=%d + N2=%d 
que da uma média de %5.2f\n", nome, nota1, nota2, media); 
 
 if(media<6){ 
 printf("\nO aluno %s, tem uma 
nota média de: %5.2f\n", nome, media); 
 printf("\nPortanto o aluno %s 
está Reprovado\n", nome); 
 } 
 else{ 
 printf("\nO aluno %s, tem uma 
nota média de: %5.2f\n", nome, media); 
 printf("\nPortanto o aluno %s 
está Aprovado\n", nome); 
 } 
 
 } 
 } 
 
 
 
 
 
 
 
 fclose(primeiro); 
 printf("\n\nPrograma Terminado"); 
 
 getchar(); 
 return(0); 
 
} 
 
 
16. //Faça um programa que leia pelo teclado o nome e a idade de N pessoas. 
Não insira nomes repetidos. 
//Armazene esses dados em um arquivo com o nome idades.txt. 
 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#include <locale.h> 
#include <time.h> 
 
 
int main(){ 
 
 setlocale (LC_ALL, "Portuguese"); 
 
 char nome[30]; 
 int idade; 
 int resposta = 1; 
 
 
 
 char url[] = "\\E:\\Gaby2\\Idades.txt"; 
 
 primeiro = fopen(url, "w"); 
 
 
 while(resposta==1){ 
 
 
 printf("\nDigite seu o nome:\n"); 
 scanf("%s%*c", &nome); 
 printf("\nDigite sua idade:\n"); 
 scanf("%d", &idade); 
 
 
 fwrite(&nome, sizeof(nome),1,primeiro); 
 fwrite(&idade, sizeof(idade),1,primeiro); 
 
 printf("Deseja continuar? Digite 1 para sim e 0 para 
não\n"); 
 scanf("%d%*c", &resposta); 
 
 
 
 } 
 
 
 
 fclose(primeiro); 
 printf("\n\n Terminado"); 
 
 getchar(); 
 return(0); 
 
} 
 
17. //Faça um programa que permita fazer uma busca no arquivo idades.txt, 
criado no exercício 16. O 
//usuário irá digitar o nome de uma pessoa, e em seguida o programa irá 
verificar se existe o nome 
//digitado. Se o programa não encontrar ninguém com o nome digitado, então 
mostrar uma 
//mensagem informando que o registro não existe. Se o nome for encontrado, 
então mostrar uma 
//mensagem informando que o nome foi encontrado, mostrando ainda: o nome, 
a idade e o ano de 
//nascimento da pessoa, objeto da busca. 
 
 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#include <locale.h> 
#include <time.h> 
int main(){ 
 
 setlocale (LC_ALL, "Portuguese"); 
 
 char nomebusca[30], nome[30]; 
 int idade; 
 int i; 
 
 
 
 
 
 
 
 char url[] = "E:\Gaby2\Idades.txt"; 
 
 FILE *primeiro; 
 primeiro = fopen(url, "r"); 
 
 printf("\nDigite o nome:\n"); 
 scanf("%s%*c", &nomebusca); 
 
 
 if(!feof(primeiro)){ 
 fread(&nome,sizeof(nome),1,primeiro); 
 fread(&idade,sizeof(idade),1,primeiro); 
 
 if(strcmp(nome,nomebusca)==0){ 
 printf("\nO nome %s, consta nos 
resgitro.\n", nome); 
 printf("\n%s, tem %d anos de idade.\n", 
nome, idade); 
 printf("\n%s nasceu no ano de: 
%d\n",nome, 2017-idade); 
 } 
 else{ 
 printf("\nO nome %s, não consta nos registro\n"); 
 } 
 
 } 
 
 
 
 
 
 
 
 fclose(primeiro); 
 printf("\n\nPrograma finalizado"); 
 
 getchar(); 
 return(0); 
 
} 
 
 
Referências: 
 
SCHEPKE, C. LIMA,J.V. Programação Paralela em Memória Compartilhada e 
Distribuída. 
Disponível em: 
http://www.inf.ufrgs.br/erad2015/downloads/p/mc/mc-schepke.pdf 
 
CABRAL, L. Programação Orientada a Objetos 
Disponível em: 
http://www.larback.com.br/adm/anexos/06032016233738.Introducao_a_progra
macao_orientada_a_objetos.pdf

Continue navegando