LuchoWiki

Cosas que debería hacer más a menudo

User Tools

Site Tools


desarrollo:informatica:contenidos:programacion-tareas-comunes

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

desarrollo:informatica:contenidos:programacion-tareas-comunes [20131201 12:03]
manager creado
desarrollo:informatica:contenidos:programacion-tareas-comunes [20131202 09:10] (current)
manager
Line 1: Line 1:
 Hoja de ayuda con tareas comunes de varios tipos en distintos lenguajes de programación. Hoja de ayuda con tareas comunes de varios tipos en distintos lenguajes de programación.
  
-==== Consultas sobre secuencias de datos ====+===== Consultas sobre secuencias de datos =====
  
-En los siguientes ejemplos, //seq// es una variable de tipo //S// representando una secuencia de datos de tipo //T//; //P// es un [[wpes>​predicado]] de forma ''​F(T)→{true,​false}''​.+En los siguientes ejemplos:
  
-=== ¿Existe el dato con valor "v" ​en la secuencia? ​===+  * //seq// es una variable de tipo //S// representando una secuencia de datos de tipo //T// 
 +  * //v// y //w// son dos datos del tipo //T// o de un tipo compatible con //T// 
 +  * //P// es un [[wpes>​predicado]] de forma ''​F:​ (T)→{true,​false}''​ 
 + 
 +==== exists / contains ===== 
 + 
 +>"​**¿Existe el dato //v// en la secuencia?**"
  
 {| class="​inline compactcode"​ {| class="​inline compactcode"​
Line 21: Line 27:
 |} |}
  
-=== ¿Qué dato en la secuencia cumple ​"P"===+==== match / find ==== 
 + 
 +>"​**¿Qué dato en la secuencia cumple ​//P//?**"
  
 {| class="​inline compactcode"​ {| class="​inline compactcode"​
Line 33: Line 41:
 |- |-
 ! Python ||  ! Python || 
-<code python> ​value m = min (skey=F)</​code>​+<code python> ​// (Python ≥ 2.6) 
 +next((x for x in seq if P(x))None) 
 +</​code>​
 |- |-
 |} |}
  
-=== Dada una función "F", ¿cuál es el mínimo en la secuencia ​usando "F" como clave===+==== minimum (/maximum) ==== 
 + 
 +>"​**Dada una clave //F//, ¿cuál es el mínimo en la secuencia ​acorde a //F//?**"
  
 {| class="​inline compactcode"​ {| class="​inline compactcode"​
Line 47: Line 59:
 ! Javascript ||  ! Javascript || 
 |- |-
 +! Mathemathica ||
 +|-
 +! PHP ||
 |- |-
 ! Python ||  ! Python || 
Line 53: Line 68:
 |} |}
  
-=== Reducir (left-fold) la lista a un valor desde un inicial "​v0" ​===+===fold / reduce ====
  
-:Ver: [[wp>​fold]].+>"​**Reducir ("​left-fold"​) la secuencia a un valor empezando con //​v0//​**"​ 
 +>Ver: [[wp>​fold]].
  
 {| class="​inline compactcode"​ {| class="​inline compactcode"​
Line 63: Line 79:
 |- |-
 ! Javascript || ! Javascript ||
-<code js>​result = seq.reduce (v0, F);</​code> ​// seq es un Array+<code js>​result = seq.reduce (v0, F); // seq es un Array
 </​code>​ </​code>​
 |- |-
Line 80: Line 96:
 |} |}
  
-==== E/S de datos ====+===== E/S de datos =====
  
 En los siguientes ejemplos //seq// es una variable que denota una secuencia de datos y //input// es una variable que denota contenidos de un tipo de datos ingresado por teclado. En los siguientes ejemplos //seq// es una variable que denota una secuencia de datos y //input// es una variable que denota contenidos de un tipo de datos ingresado por teclado.
  
-=== Leer secuencias de datos desde la entrada estándar ===+==== Leer secuencias de datos desde la entrada estándar ​====
  
 {| class="​inline compactcode"​ {| class="​inline compactcode"​
Line 101: Line 117:
 |- |-
 |} |}
 +
 +
 +==== Escribir secuencias de datos a la salida estándar ====
 +
 +{| class="​inline compactcode"​
 +|-
 +! C++ || 
 +<code c++>// alternativa 1, usando un bucle
 +for (Iterator i= begin(seq); i != end(seq); ++i) { cout << *i; } // Iterator es el tipo de begin(seq)
 +</​code>​
 +<code c++>// alternativa 2, usando iteradores
 +copy (begin(seq),​ end(seq), ostream_iterator<​T>​(cout,​ " "​)); ​
 +// nota: agrega un separador extra al final de la secuencia
 +</​code>​
 +|-
 +! Javascript ||
 +|-
 +! Python || 
 +|-
 +|}
 +
 +==== Leer argumentos entregados al programa ====
 +
 +{| class="​inline compactcode"​
 +|-
 +! C/C++|| <code c++>
 +int main (int argc, char **argv) { 
 +    // argc = numero de argumentos ​
 +    // argv = puntero a cadenas de texto conteniendo cada argumento
 +}
 +</​code>​
 +|-
 +! Javascript ||
 +|-
 +! PHP || 
 +|-
 +! Python || <code python>
 +import sys
 +sys.argv
 +</​code>​
 +|-
 +|}
 +
 +==== ¿Existe el archivo en "​ruta_archivo"?​ ====
 +
 +{| class="​inline compactcode"​
 +|-
 +! C++ (+POSIX)|| ​
 +<code c++>
 +</​code>​
 +|-
 +! Javascript ||
 +|-
 +! PHP || <​code>​if (file_exists(ruta_archivo) === true) { ... }
 +</​code>​
 +|-
 +! Python || 
 +|-
 +|}
 +
  
  
 {{tag>​tips informatica}} {{tag>​tips informatica}}
  
desarrollo/informatica/contenidos/programacion-tareas-comunes.txt · Last modified: 20131202 09:10 by manager