5 May en Code | No Comments »
Para hacer una función recursiva en c. solo tenemos que llamarla dentro de si misma. Hay que tener en cuenta que aparte de la llamada a si misma tiene que en algún momento cortar la recursividad para no generar un loop.
En este caso la condición de salida es que cuando el numero de elementos llega a 0. Se deja de llamar a la función y se devuelve 0. En este momento, se hacen todas las sumas de los elementos y se le entrega a la variable “sumatoria” del main, el resultado de la suma.
En el siguiente código de ejemplo, se carga un vector con n elementos enteros y calcular la suma de sus elementos en forma recursiva
#include <stdio.h>
#include <conio.h>
#include <string.h>
// CONSTANTES
#define TAM_ARR_MAX 20
int main(int argc, char **argv)
{
//DECLARACION DE VARIABLES
int VEC1[TAM_ARR_MAX], VEC2[TAM_ARR_MAX];
int tam_1;
int sumatoria;
printf("#### 1 #####\n");
tam_1 = ask_tam(); //Le pregunta al usuario que tamaño tendra el vector.
arr_cargar(VEC1,tam_1); //El usuario Carga el vector.
arr_mostrar(VEC1,tam_1); //Se muestra el vector Cargado
sumatoria = rec_arr_sumatoria(VEC1,tam_1); // SUMATORIA DEL VECTOR EN FORMA RECURSIVA
printf("\nLa sumatoria de los %d elementos del array es: %d",tam_1,sumatoria);
printf("\n\n****************************\n");
//Cierro main.
//getch();
return 0;
}
/************************************/
/* FUNCIONES */
/************************************/
int ask_tam(){
int n;
printf("\nIngrese el tamanio que tendra el array (menor que %d):",TAM_ARR_MAX);
do{
scanf("%d",&n);
}while(n<1);
return n;
}
void arr_mostrar(int X[TAM_ARR_MAX], int n){
int i;
printf("\n");
for(i=0;i<n;i++){
printf("[%d]:%d",i,X[i]);
if(i<n)
printf("; ");
}
printf("\n");
}
void arr_cargar(int X[TAM_ARR_MAX], int n){
int i;
for(i=0;i<n;i++){
printf("\nIngrese [%d]:",i);
scanf("%d",&X[i]);
}
}
int rec_arr_sumatoria(int X[], int i){
if(i==0)
return 0;
else
return rec_arr_sumatoria(X,i-1)+X[i-1];
}
Tags: c, tp, UP
5 May en blog | No Comments »
Hecho moco, por el resfrio, tranquilo en casa intentando de recuperarme, me pongo a actualizar un poco el blog que lo tenia abandonado.
Ya pasaron los examenes, (aunque ayer falte a uno). Actualizo los post de C. Con varios temas, recursividad y archivos por ahora. Si llego tambien incluyo punteros.
Salutes
Tags: blog, Pedro
5 Abr en blog | No Comments »
6:45 levantarse, cambiarse.
6:50 desayunar.
7:00 salir a correr.
8:30 volver, bañarse, cambiarse.
9:00 salir para el trabajo.
(…)
9:15 despertarse, levantarse, desayunar, bañarse, cambiarse.
9:20 salir para el trabajo.
Tags: escritos, estados, momentos, tiempo
3 Abr en Code | No Comments »
TP2 para UP. Estructuras de datos y Algoritmos
Dejo ejemplificado el manejo de caracteres en C. Con un Trabajo Practico que tube que entregar en la facultad. Con los siguientes puntos:
1. Leer un texto carácter por carácter terminando en EOF. Contar cuántas veces aparecen dos letras iguales. Mostrarlas intercalándoles el signo “=”.
Ejemplo: “sooolo see que no see naaddaaa.”
En 8 oportunidades hay dos letras iguales juntas. “so=o=olo se=e que no se=e na=ad=da=a=a”
2. Ingrese un texto carácter a carácter terminado en EOF contar cuantas palabras tienen más de una vez repetida la primer letra de la primer palabra.
Ejemplo:
AYER ESTABA FEO PERO ANA FUE IGUALMENTE AL ALMACEN.
La cantidad de palabras que tienen más de una A es 3.
3. Leer un texto carácter por carácter terminando en EOF. Contar palabras de 5 letras que terminan en “ia”. Al final de cada una de esas palabras, insertar el número “5”.
Ejemplo: “María sabia que no le salía” => ”Maria5 sabia5 que no le salia5”
La cantidad de palabras terminadas en ia son: 3
Uso de putchar(); y getchar();
Todavía hay más por leer »
Tags: c, tp, UP
2 Abr en Code | No Comments »
TP1 para UP.
Les dejo ejemplificado con estos ejercicios el manejo de matrices en C..
Cargar una matriz de 5 filas y 5 columnas y calcular y mostrar:
1. la matriz transpuesta
2. El promedio de los elementos de las dos diagonales (principal y secundaria)
3. Multiplicar la matriz por su transpuesta.
4. Determinar cuantos números primos hay en la matriz.
Funciones en el código:
- Cargar matriz cuadrada
- Mostrar matriz cuadrada
- Calcular matriz transpuesta
- Multiplicar matrices
- Sacar el promedio de las diagonales
- Contar la cantidad de primos en la matriz
Todavía hay más por leer »
Tags: c, tp, UP
11 Mar en blog | No Comments »
Desde hace rato ya, que me di cuenta que escribir algo, me cuesta horrores. Más cuando quiero comunicar o transmitir información. Pero cada vez que pienso y pienso como mejorar mi comunicación, descubro que me termino callando de tanto pensar. Así que intento decir basta de pensar tanto, e intentar un poco más de acción.
Así, y junto a mis propios alientos hacia pelaiutu.blogspot.com para que siga escribiendo, me doy ganas de abrir la sección de escritos (o por lo menos algunas notas), cosas de SEO, Motivación, Liderazgo que me interesa y me gustaría compartir, con quien quiera leerlo.
Espero no hacerlos sufrir a los que me lean
Tags: escritos, reflexión
4 Mar en Code | No Comments »
Validar RUT:
Trabajando en un proyecto para chile, me surgio la necesidad de validar el formato del RUT chileno, (Que seria como el DNI de Argentina). Tanto en el Backend del php como en el formulario de carga del RUT para avisarle al usuario al tiempo que escribe como es el formato correspondiente.
Como un extra, aparte de las funciones les dejo un link a un generador de RUTs validos:
Aca les dejo las funciones para validar el RUT en php y javascript, del siguiente formato XXYYYZZZ-K
Todavía hay más por leer »
Tags: Javascript, PHP
4 Mar en Code | No Comments »
Que pasa si en lugar de que los saltos de linea sean un simple br necesitas que salte un poco mas?
bueno para no tener que hacer algun extraño movimiento con css y agrandar el alto de un br. Les comparto esta funcion que tiene un funcionamiento identico a nl2br()
/**
* Returns string with newline formatting converted into HTML paragraphs.
*
* @author Michael Tomasello <miketomasello@gmail.com>
* @copyright Copyright (c) 2007, Michael Tomasello
* @license http://www.opensource.org/licenses/bsd-license.html BSD License
*
* @param string $string String to be formatted.
* @param boolean $line_breaks When true, single-line line-breaks will be converted to HTML break tags.
//Jinglero: Cuando sea true, los saltos de lineas seran simples saltos de lineas, si es false, el salto de linea se convertira en parrafo.
* @param boolean $xml When true, an XML self-closing tag will be applied to break tags (<br />).
* @return string
*/
function nl2p($string, $line_breaks = true, $xml = true)
{
// Remove existing HTML formatting to avoid double-wrapping things
$string = str_replace(array('<p>', '</p>', '<br>', '<br />'), '', $string);
// It is conceivable that people might still want single line-breaks
// without breaking into a new paragraph.
if ($line_breaks == true)
return '<p>'.preg_replace(array("/([\n]{2,})/i", "/([^>])\n([^<])/i"), array("</p>\n<p>", '<br'.($xml == true ? ' /' : '').'>'), trim($string)).'</p>';
else
return '<p>'.preg_replace("/([\n]{1,})/i", "</p>\n<p>", trim($string)).'</p>';
}
Espero que les sirva, Salutes!
Tags: PHP
4 Mar en Code | No Comments »
Si necesitas saber que dia de la semana es una fecha en particular, lo unico que necesitas es pasarle a nameDia() año, mes y dia.
function nameDia($ano,$mes,$dia)
{
$nameDias[] = 'Domingo';
$nameDias[] = 'Lunes';
$nameDias[] = 'Martes';
$nameDias[] = 'Miercoles';
$nameDias[] = 'Jueves';
$nameDias[] = 'Viernes';
$nameDias[] = 'Sabado';
// 0->domingo | 6->sabado
$dia= date("w",mktime(0, 0, 0, $mes, $dia, $ano));
return $nameDias[$dia];
}
Saludos
Tags: PHP
4 Mar en Code | No Comments »
Si necesitas contar los dias que tiene un mes, y no cuentas con el paquete Calendar y la funcion cal_days_in_month() Entonces esto sera muy util.
/*
* daysInMonth($month, $year)
* Devuelve la cantidad de dias que tiene un mes en un año determinado.
*
* $month: numero de mes (integers 1-12)
* $year: numero de año (any integer) ('aaaa')
*
* Prec: $month y $year deben ser integer.
* Post: none
*/
function daysInMonth($month, $year)
{
// Calculo la cantidad de dias en el mes
return $month == 2 ? ($year % 4 ? 28 : ($year % 100 ? 29 : ($year % 400 ? 28 : 29))) : (($month - 1) % 7 % 2 ? 30 : 31);
}
Espero que le sirva, Saludos.
Tags: PHP