[Recurso] Postea tu programilla

danny te falto postear este de la tarea xD!, no habia cachao este topic antes >.<, loka ociosa 10k de post hawhahw, ubb presente! go jamaik ^^;
Enunciado
I) Problema &#8220;Observatorio Astronómico&#8221;
En un observatorio astronómico se reciben las señales de la intensidad luminosa de los distintos lugares del cosmos. La información de cada una de las señales luminosas que es detectada por el observatorio, es almacenada en una matriz que representa una región del cosmos, donde cada elemento de la matriz representa la cantidad de luz procedente de la porción de la imagen correspondiente. El rango de intensidad de la luz varía entre 0 y 1 (desde la oscuridad absoluta hasta la luz emitida por una estrella observable a simple vista). Se puede suponer la existencia de una estrella en el área correspondiente a un elemento de la matriz cuando la suma de la intensidad de la luz correspondiente al elemento más el promedio de los elementos adyacentes a él, es mayor o igual a 0,6

Se tiene una matriz declarada por

[FONT=&quot]float matriz[500][500];[/FONT]

Desarrolle un programa en C para determinar la posición de las posibles estrellas encontradas




Los datos se encuentran almacenados en un archivo, el cual debe ser leido por su programa. Por ello, se deberán considerar las siguientes instrucciones al comienzo del programa, para poder leer los datos correspondientes de la matriz:



[FONT=&quot]#include<stdio.h>[/FONT]
[FONT=&quot]main(){[/FONT]
[FONT=&quot] float matriz[500][500];[/FONT]
[FONT=&quot] FILE *arch;[/FONT]
[FONT=&quot] int i,j;[/FONT]
[FONT=&quot] if ( (arch=fopen("matriz.dat","r") ) == NULL){[/FONT]
[FONT=&quot]printf("No se pudo abrir el archivo\n");[/FONT]
[FONT=&quot]}[/FONT]
[FONT=&quot] else {[/FONT]
[FONT=&quot] for (i=0;i<500;i++)[/FONT]
[FONT=&quot] for (j=0; j<500;j++)[/FONT]
[FONT=&quot] fscanf(arch, "%f", &matriz[j]);[/FONT]
[FONT=&quot] fclose(arch);[/FONT]
[FONT=&quot] }[/FONT]

y el codigo;
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#define MAX 499
#define MIN 0

void cal_promedio(int fil, int col);
float matriz[500][500],x=0.6; /*aca se calcula si es mayor que 0.6*/
float suma=0,promedio=0;

main(){

FILE *arch;
int i,j;
if ( (arch=fopen("matriz.txt","r") ) == NULL){ /*acá abrimos el archimo matriz.txt*/
printf("No se pudo abrir el archivo\n");
}
else {
for (i=0;i<500;i++){ /*acá leemos la matriz*/
for (j=0; j<500;j++){
fscanf(arch, "%f", &matriz[j]);
}
}
fclose(arch);

for (i=0;i<500;i++){
for (j=0; j<500;j++){

cal_promedio(i,j);
}
}

}
}

void cal_promedio(int fil, int col)
{

if(fil==MIN){
if(col==MIN){
promedio=(matriz[fil+1][col]+matriz[fil][col+1]+matriz[fil+1][col+1])/3;
}
else if(col==MAX){
promedio=(matriz[fil+1][col]+matriz[fil][col-1]+matriz[fil+1][col-1])/3;
}
else if((col>MIN)&&(col<MAX)){
promedio=(matriz[fil][col-1]+matriz[fil+1][col-1]+matriz[fil+1][col]+matriz[fil][col+1]+matriz[fil+1][col+1])/5;
}
}

else if(fil==MAX){
if(col==MIN){
promedio=(matriz[fil-1][col]+matriz[fil-1][col+11]+matriz[fil][col+1])/3;
}
else if(col==MAX){
promedio=(matriz[fil-1][col]+matriz[fil][col-1]+matriz[fil-1][col-1])/3;
}
else{
promedio=(matriz[fil][col-1]+matriz[fil-1][col-1]+matriz[fil-1][col]+matriz[fil-1][col+1]+matriz[fil][col+1])/5;
}
}
else if((fil>MIN)&&(fil<MAX)){
if(col==MIN){
promedio=(matriz[fil-1][col]+matriz[fil+1][col]+matriz[fil-1][col+1]+matriz[fil][col+1]+matriz[fil+1][col+1])/5;
}
else if(col==MAX){
promedio=(matriz[fil-1][col]+matriz[fil-1][col-1]+matriz[fil][col-1]+matriz[fil+1][col-1]+matriz[fil+1][col])/5;
}
else{
promedio=(matriz[fil-1][col-1]+matriz[fil][col-1]+matriz[fil+1][col-1]+matriz[fil-1][col]+matriz[fil+1][col]+matriz[fil-1][col+1]+matriz[fil][col+1]+matriz[fil+1][col+1])/8;
}
}


suma=matriz[fil][col]+promedio;
if(suma>=x){
printf("[%d][%d] %f + %f Es una estrella ===> %f", fil, col,matriz[fil][col],promedio,suma);
system("pause");
}


}

saludos
 
hallar la sumatoria de: 2! + 4! + 6! + 8! + ...

#include <stdio.h>
#include <conio.h>
int facto (int x)
{
int f=1;
for (int i=1;i<=x;i++)
{f=f*i;}
return (f);
}

int main ()
{
int n, serie=2, suma=0;
printf ("Inserte cantidad de terminos a generar: "); scanf ("%d",&n);
for (int i=1;i<=n;i++)
{
printf ("%d! + ",serie);
suma=suma+(facto(serie));
serie=serie+2;
}
printf (" = %d",suma);
getch();
}
 
Dado el vector T de tamao n. Si el tamaño es par invertir los elementos de la mitad de los elementos
Ejemplo: v=[1][2][3][4][5][6] v(invertido)=[3][2][1][6][5][4]

#include<stdio.h>
#include<conio.h>

void llenar (int V [], int d)
{
for (int i = 1 ; i <= d ; i++)
{
printf ("Inserte pos.[%d]: ",i);
scanf("%d",&V);
}
}

void mostrar (int V [], int d)
{
for (int i = 1 ; i <= d ; i++)
{
printf ("[%d]",V);
}
}

void invierte (int V [], int d)
{
int aux1;
int fin1 = d / 2;
for (int i = 1 ; i <= (d / 2) / 2 ; i++)
{
aux1 = V ;
V = V [fin1];
V [fin1] = aux1;
fin1--;
}

fin1 = d;
for (int j = (d / 2) + 1 ; j <= (d / 2) + 1 ; j++)
{
aux1 = V [j];
V [j] = V [fin1];
V [fin1] = aux1;
fin1--;
}
}

int main ()
{
int V[20];
int d;
printf ("Inserte dimen. del vector: "); scanf("%d",&d);
llenar (V, d);
printf ("\nVECTOR ORIGINAL: \n");
mostrar (V, d);
printf ("\n\nVECTOR LUEGO DE LA INVERSION: \n");
invierte (V, d);
mostrar (V, d);
getch();
}
 
Dado un polinomio evualuarlo en el punto x (todo en un vector)

#include <stdio.h>
#include <conio.h>

void llenar (int V[20], int d)
{
for (int i = 1 ; i <= d ; i++)
{
printf ("Inserte pos.[%d]: ",i);
scanf("%d",&V);
}
}

void mostrar (int V[20], int d)
{
for (int i = 1 ; i <= d ; i++)
{
printf ("[%d]",V);
}
}

int potencia (int b, int e)
{
int p = 1;
for (int i = 1 ; i <= e ; i++)
{
p = p * b;
}
return (p);
}

void evalua (int V [], int d, int x)
{
int s = 0;
for (int i = 1 ; i <= d ; i += 2)
{
s = s + (V * potencia (x, V [i + 1]));
}
printf("\n\nX es igual a: %d",s);
}

int main ()
{
int V[20];
int d, x;
printf("Inserte dimen. del vector: ");
scanf("%d",&d);
printf ("Inserte valor de (x): ");
scanf("%d",&x);
llenar (V, d);
printf("\nVECTOR: ");
mostrar (V, d);
evalua (V, d, x);
getch();
}
 
cuenta palabras separadas por , ; . o espacios eso si solo una de esas cosas ejemplo si ingresas una cadena separada por espacios : hola mundo te dira dos palabras o hola,mundo o hola;mundo dos palabras y eso xDDDDDDDD aaa y si kieren cambian el tamaño del arreglo
#include <stdio.h>
#include <string.h>
int palabras(char*);//declaracion funcion que cuenta palabras

main(){
int contador,i;
char pal[200];
printf("Ingresa palabras separadas por espacios,puntos,comas o punto\n"); //ingreso de texto para evaluar cantidad de palabras
fgets(pal,200,stdin);
contador=palabras(pal);
printf(" %d palabras encontradas \n", contador);



}


int palabras (char pal[])//funcion para contar palabras
{
int i,contador=1;

for (i=0; i<strlen(pal); i++){

if (pal=='.'||pal==','||pal==';'||pal==' ')

contador++;


}
return contador;
}
 
Aka les dejo una especie de base de datos
sencillo......crea un documento de texto con
la infomacion ingresada. Se utiliza ficheros o archivo.


#include<stdio.h>
#include<stdlib.h>
main()
{
char nombre[15];
char apellido[20];
int edad;
FILE*archivo;

printf("Ingrese nombre: ");
scanf("%s", &nombre);
printf("\nIngrese apellido: ");
scanf("%s", &apellido);
printf("\nIngrese edad: ");
scanf("%d", &edad);

archivo=fopen("Datos.txt","a");
fprintf(archivo,"%s" "\n%s" "\n%d", nombre, apellido, edad);
fprintf(archivo,"\n\n");
fclose(archivo);

system("pause");
}
 
algoritmo backtracking

este programa crea todas las permutaciones posibles de la cantidad de numeros que le ingresas

ejemplo : si ingresas un 2 .... el programa entrega 1,2 y 2,1

#include <stdio.h>

#define TRUE 1
#define FALSE 0

#define NMAX 100

void procesar_solucion(int a[], int k) {
int i;
printf("{");
for (i=1; i<=k; i++) {
printf(" %d",a);
}
printf(" }\n");
}


void backtrack(int a[], int k, int n) {
int ncandidatos, i;
int candidatos[NMAX];
int ya_esta[NMAX];

if (k == n) {
procesar_solucion(a,k);
}
else {
k = k+1;

/* Construye lista de candidatos para el backtracking */
for (i=1; i<NMAX; i++)
ya_esta = FALSE;
for (i=1; i<k; i++)
ya_esta[a] = TRUE;
ncandidatos = 0;
for (i=1; i<=n; i++) {
if (!ya_esta) {
candidatos[ncandidatos] = i;
ncandidatos++;
}
}

for (i=0; i<ncandidatos; i++) {
a[k] = candidatos;
backtrack(a,k,n);
}
}
}

main() {
int a[NMAX];
int n;

printf("ingrese n:");
scanf("%d", &n);
backtrack(a,0,n);
}
 
/*Verificador de año bisiesto*/
#include <stdio.h>
#include <conio.h>

main ()
{
int year;

clrscr();
printf ("\nVerificador de a¤o bisiesto.");
printf ("\n----------- -- --- ---------");
printf ("\nIngrese el a¤o a consultar :");
scanf ("%d",&year);
if (year%4==0 && year%100!=0 || year%400==0)
printf ("\nEl a¤o es bisiesto");
else
printf ("\nEl a¤o no es bisiesto");

getchar();
getchar();
return(0);


}
 
YA AQI LES DEJO UN PROGRAMA EN C PARA SACAR PROMEDIOS XD..


#include <stdio.h>
#include<conio.h>
prom(int acum,int x); /*el nombre de la funcion*/

void main()
{
int c=0,x,des=0,n,acum=0,nota;
printf("ingrece numero de notas""\n");
scanf("%d",&x); /*ingreso de las notas*/
do
{
do
{
clrscr(); /*esto hace q cuando imprime un resultado salga en una pagina limpia o algo asi*/
if(c==1)printf("error""\n"); /*esto es por si el usuario ingreso un numero q no esta dentro del rango de notas*/
else printf("ingrece nota de 1.0 a 7.0 sin puntos""\n");
scanf("%d",&n);
c=1;
}
while(n<0||n>70) /*validacio de notas*/
acum=acum+n; */sumas las notas*/
des++; /*cuenta las notas*/
c=0;
}
while(des<x);
nota=prom(acum,x); /*llamado a la funcion*/
printf("su promedio es \n %d",nota);
}


prom(int acum, int x) /*funcion*/
{
int pro;
pro=acum/x; /*saca el promedio*/
return (pro);
}
:zippynana: /*espero le sirva a alguien*/
 
serie fibonacci en java
20 primeros numeros

package fibo;
import java.io.*;

public class fibo {

/*by maxuk*/
public static void main(String[] args) {
int i,n=1,n2=1;



try
{

System.out.println (n);

for (i=1 ; i<20 ; i++)
{
System.out.println(n2);
n2 = n2+n;
n = n2 - n;
}


}
catch (Exception e)
{
System.out.print("error");
}
}

}

invertir un numero

package invertido;
import java.io.*;
public class invertido {
/*by maxuk */
public static void main(String[] args) {
int n,nume,res,invert=0;

BufferedReader num = new BufferedReader (new InputStreamReader(System.in));

try
{
do
{ System.out.print(" ingrese un numero: ");
n = Integer.parseInt (num.readLine());
}
while (n<=9 || n>99999);
nume=n;
while (nume>0)
{
res = nume%10;
nume = nume/10;

invert = invert * 10 + res;

}

System.out.print(" el numero "+n+" invertido quedaria como "+invert);

}
catch (Exception e)
{ System.out.print("error");
}
}
}


ojala a alguien le sea util
saludos
 
el naval combat en c
#include<stdio.h>
#include<stdlib.h>
#include<time.h>


//Funcion principal
main()
{
int i, j,opcion;
char p1[12][12],p2[12][12],p3[12][12];

printf("[1] jugar\n");
printf("[2]ayuda\n");
scanf("%d",&opcion);


if(opcion>2||opcion<1) printf("no corresponde\n");
if(opcion==2){

printf("[1] juegar\n");
scanf("%d",&opcion);
}
if(opcion>2||opcion<1) printf("no corresponde\n");
if(opcion==1){
for(i=0;i<12;i++){
for(j=0;j<12;j++){
p1[j]='*';
p2[j]='*';
p3[j]='*';
}
}
for(i=0;i<10;i++){
printf("\n");
for(j=0;j<10;j++){
printf("%c\t",p3[j]);}

}


ingresa(p1,p2);
juego(p1,p2,p3);
}
printf("Fin del juego\n");
}//fin funcion

//funcion de Ingreso
ingresa(char p1[10][10], char p2[10][10]){
int i,j,cord1,cord2,comienzo=0,aux1=5,aux2=5,porta=5,acora=4,fragat=3,sub=3,reco=2;
printf("\ningrese PortaAviones\n\n");
while(porta>0){
printf("Ingrese la pocision \n");
scanf("%d,%d",&cord1,&cord2);
if(p1[cord1][cord2]!='*'){
printf("la posicion ya existe\n");
}
else{
p1[cord1][cord2]='p';
porta--;
printf("ingresado\n");}



for(i=0;i<10;i++){
printf("\n");
for(j=0;j<10;j++){
printf("%c\t",p1[j]);}}



}
printf("ingrese Acorazado\n");
while(acora>0){
printf("Insert position \n");
scanf("%d,%d",&cord1,&cord2);
if(p1[cord1][cord2]=='*'){
p1[cord1][cord2]='a';
acora--;
printf("ingresado %d,%d\n", cord1,cord2);
}
else printf("posicion ya existe\n");
for(i=0;i<10;i++){
printf("\n");
for(j=0;j<10;j++){
printf("%c\t",p1[j]);}}
}


printf("ingrese Fragata\n");
while(fragat>0){
printf("Insert position \n\n");
scanf("%d,%d",&cord1,&cord2);
if(p1[cord1][cord2]=='*'){
p1[cord1][cord2]='f';
fragat--;
printf("ingresado %d,%d\n", cord1,cord2);
}
else printf("posicion ya existe\n");
for(i=0;i<10;i++){
printf("\n");
for(j=0;j<10;j++){
printf("%c\t",p1[j]);}}
}



printf("ingrese submarino\n");
while(sub>0){
printf("Insert position \n");
scanf("%d,%d",&cord1,&cord2);
if(p1[cord1][cord2]=='*'){
p1[cord1][cord2]='s';
sub--;
printf("ingresado %d,%d\n", cord1,cord2);
}
else printf("posicion ya existe\n");
for(i=0;i<10;i++){

for(j=0;j<10;j++){
printf("%c\t",p1[j]);}
printf("\n");}
}
printf("ingrese ingrese patrulla de reconocimiento\n");
while(reco>0){
printf("Insert position \n");
scanf("%d,%d",&cord1,&cord2);
if(p1[cord1][cord2]=='*'){
p1[cord1][cord2]='r';
reco--;
printf("ingresado %d,%d\n", cord1,cord2);
}
else printf("posicion ya existe\n");
for(i=0;i<10;i++){
printf("\n");
for(j=0;j<10;j++){
printf("%c\t",p1[j]);}}
}

//definicion
porta=5;
acora=4;
fragat=3;
sub=3;
reco=2;

while(porta>0){
cord1=rand()%5+2;
cord2=rand()%5+2;
if(p2[cord1][cord2]=='*'){
p2[cord1][cord2]='p';
porta--;
}
else printf("leyendo\n");
}



while(acora>0){
cord1=rand()%6+3;
cord2=rand()%6+3;
if(p2[cord1][cord2]=='*'){
p2[cord1][cord2]='a';
acora--;
}
else printf("loading\n");
}


while(fragat>0){
cord1=rand()%8+3;
cord2=rand()%8+3;
if(p2[cord1][cord2]=='*'){
p2[cord1][cord2]='f';
fragat--;

}
else printf("loading\n");
}


while(sub>0){
cord1=rand()%3+1;
cord2=rand()%3+1;
if(p2[cord1][cord2]=='*'){
p2[cord1][cord2]='s';
sub--;

}
else printf("loading\n");
}

printf("\n\tPC posicionado!!\n\n");
while(reco>0){
cord1=rand()%2;
cord2=rand()%2;
if(p2[cord1][cord2]=='*'){
p2[cord1][cord2]='r';
reco--;

}
else printf("loading\n");
}

}






//Funcion del Juego
juego(char p1[10][10], char p2[10][10],char p3[10][10])
{
int i,j,naves1=5,naves2=5,aux=1,cord1,cord2,end=0;
int Port1=5,Port2=2,Acora1=4,Acora2=4,Fra1=3,Fra2=3,Sub1=3,Sub2=3,Re1=2,Re2=2;


system ("clear");
printf("\t\nComenzando EL juego...\n\n");
while(end==0){
while(aux!=0){
printf("\tJUGADOR 1...Naves Player1: %d\n", naves1);
if(Port1<3&&Port1>1) printf("\t(aviso)Porta Aviones en peligro\n");
if(Acora1<3&&Acora1>1) printf("\t(Atencion)Acorazado en peligro\n");
if(Fra1<3&&Fra1>1) printf("(WARNING)Fragata Dañada\n");
if(Sub1<3&&Sub1>1) printf("(Warning)SubMarino Dañado\n");
if(Fra1<2&&Fra1>0) printf("(Warning)Patrulla estado Critico\n");
printf("\t\tNaves enemigas en campo: %d\n", naves2);

for(i=0;i<10;i++){
for(j=0;j<10;j++){
printf("%c\t",p3[j]);}
printf("\n");
}



printf("Ataque a su enemigo: disponga coordenadas\a\n");
scanf("%d,%d", &cord1,&cord2 );
system ("clear");
if(p2[cord1][cord2]!='*'){
printf("(Estado)\t reached target %d,%d\n\a\a", cord1,cord2);
printf("\t\t(AVISO)Juegas Otra vez!!\n");
if(p2[cord1][cord2]=='p'){ printf("\tPorta aviones da?ado\n");
p3[cord1][cord2]='P';
Port2--;
}
if(p2[cord1][cord2]=='a'){ printf("\tacorazado da?ado\n");
p3[cord1][cord2]='A';
Acora2--;}
if(p2[cord1][cord2]=='f'){ printf("\tFragata aviones da?ada\n");
p3[cord1][cord2]='F';
Fra2--; }
if(p2[cord1][cord2]=='s'){ printf("\tSubMarino aviones da?ado\n");
p3[cord1][cord2]='S';
Sub2--;}
if(p2[cord1][cord2]=='r'){ printf("\tPatrulla da?ada\n");
p3[cord1][cord2]='R';
Re2--;}
}
else{ printf("(Estado)\tlost Target\n");
aux=0;
p3[cord1][cord2]='x';}

}

for(i=0;i<10;i++){
for(j=0;j<10;j++){
printf("%c\t",p3[j]);}
printf("\n");
}


if(Port2==0){naves2=naves2-1;
Port2++;}
if(Acora2==0){naves2=naves2-1;
Port2++;}
if(Fra2==0){naves2=naves2-1;
Fra2++;}
if(Sub2==0){naves2=naves2-1;
Sub2++;}
if(Re2==0){naves2=naves2-1;
Re2++;}
//PC
aux=1;

while(aux!=0){

printf("turno de PC...\n(Estado)::Jugando...\n\a");
cord1=rand()%9;
cord2=rand()%9;
if(p1[cord1][cord2]!='*'){
printf("\t PC reached target %d,%d\n\a", cord1,cord2);
if(p1[cord1][cord2]=='p'){ printf("\tAlcanza un Porta Aviones\n\a");
p3[cord1][cord2]='p';
Port1--; }
if(p1[cord1][cord2]=='a'){ printf("\tALcanza un Acorazado\n\a");
p3[cord1][cord2]='a';
Acora1--;}
if(p1[cord1][cord2]=='f'){ printf("\tALcanza una fragata\n");
p3[cord1][cord2]='f';
Fra1--; }
if(p1[cord1][cord2]=='s'){ printf("\tSubMarino alzanzado\n\a");
p3[cord1][cord2]='s';
Sub1--;}
if(p1[cord1][cord2]=='r'){ printf("\tPatrulla Alcamzada\a\n");
p3[cord1][cord2]='r';
Re1--; }
}
else{ printf("\t(Estado)PC::lost Target::\n");
aux=0;
p3[cord1][cord2]='O';}

}


if(Port1==0){naves1=naves1-1;
Port1++;}
if(Acora1==0){naves1=naves1-1;
Port1++;}
if(Fra1==0){naves1=naves1-1;
Fra1++;}
if(Sub1==0){naves1=naves1-1;
Sub1++;}
if(Re1==0){naves1=naves1-1;
Re1++;}


aux=1;

if(naves1==0||naves2==0) end=1;
}
if(naves1==0) printf("\n\tGana Jugador PC\n");
if(naves2==0) printf("\n\tGana Jugador 1, Congratulations\n");
}