<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://so.v2.cs.unibo.it/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Patti</id>
	<title>Sistemi Operativi - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://so.v2.cs.unibo.it/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Patti"/>
	<link rel="alternate" type="text/html" href="https://so.v2.cs.unibo.it/wiki/index.php/Special:Contributions/Patti"/>
	<updated>2026-06-20T12:30:25Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.5</generator>
	<entry>
		<id>https://so.v2.cs.unibo.it/wiki/index.php?title=Talk:Esercizi_a_caso_del_Prof.&amp;diff=90</id>
		<title>Talk:Esercizi a caso del Prof.</title>
		<link rel="alternate" type="text/html" href="https://so.v2.cs.unibo.it/wiki/index.php?title=Talk:Esercizi_a_caso_del_Prof.&amp;diff=90"/>
		<updated>2013-11-02T19:17:14Z</updated>

		<summary type="html">&lt;p&gt;Patti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Personalmente ci ho messo un po' a vedere quale fosse il punto del quine; stampare una stringa con tutto il codice mi sembrava  di primo acchito un'idea stupida o troppo facile, invece non è banale.&lt;br /&gt;
&lt;br /&gt;
Dopo diverse ore (e qualche suggerimento sulle format string e printf) sono riuscita ad arrivare a un programma funzionante anch'io:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include&amp;lt;stdio.h&amp;gt;&lt;br /&gt;
main(){ char *a=&amp;quot;#include&amp;lt;stdio.h&amp;gt;%cmain(){ char *a=%c%s%c;char *b=%c%s%c;printf(%c%s%c%s%c&amp;quot;;char *b=&amp;quot;,10,34,s,34,34,b,34,34,s,34,b,10);}&amp;quot;;printf(&amp;quot;#include&amp;lt;stdio.h&amp;gt;%cmain(){ char *a=%c%s%c;char *b=%c%s%c;printf(%c%s%c%s%c&amp;quot;,10,34,a,34,34,b,34,34,a,34,b,10);}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(salvo poi scoprire, guardando meglio il codice di F. e A., che è possibile scrivere una cosa del genere: char *s=&amp;quot;%cciao%c&amp;quot;;  printf(s,34); che stampa a video &amp;lt;i&amp;gt;ciao&amp;lt;/i&amp;gt; tra virgolette.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alla fine mi resta circa quello che è già stato postato.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include&amp;lt;stdio.h&amp;gt;&lt;br /&gt;
main(){char *a=&amp;quot;#include&amp;lt;stdio.h&amp;gt;%cmain(){char *a=%c%s%c;printf(a,10,34,a,34,10);}%c&amp;quot;;printf(a,10,34,a,34,10);}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Patti</name></author>
	</entry>
	<entry>
		<id>https://so.v2.cs.unibo.it/wiki/index.php?title=Talk:Esercizi_a_caso_del_Prof.&amp;diff=89</id>
		<title>Talk:Esercizi a caso del Prof.</title>
		<link rel="alternate" type="text/html" href="https://so.v2.cs.unibo.it/wiki/index.php?title=Talk:Esercizi_a_caso_del_Prof.&amp;diff=89"/>
		<updated>2013-11-02T05:50:04Z</updated>

		<summary type="html">&lt;p&gt;Patti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Personalmente ci ho messo un po' a vedere quale fosse il punto del quine; stampare una stringa con tutto il codice mi sembrava  di primo acchito un'idea stupida o troppo facile, invece non è banale.&lt;br /&gt;
&lt;br /&gt;
Dopo diverse ore (e qualche suggerimento sulle format string e printf) sono riuscita ad arrivare a un programma funzionante anch'io:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include&amp;lt;stdio.h&amp;gt;&lt;br /&gt;
main(){ char *a=&amp;quot;#include&amp;lt;stdio.h&amp;gt;%cmain(){ char *a=%c%s%c;char *b=%c%s%c;printf(%c%s%c%s%c&amp;quot;;char *b=&amp;quot;,10,34,s,34,34,b,34,34,s,34,b,10);}&amp;quot;;printf(&amp;quot;#include&amp;lt;stdio.h&amp;gt;%cmain(){ char *a=%c%s%c;char *b=%c%s%c;printf(%c%s%c%s%c&amp;quot;,10,34,a,34,34,b,34,34,a,34,b,10);}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(salvo poi scoprire, guardando meglio il codice di F. e A., che è possibile scrivere una cosa del genere: char *s=&amp;quot;%cciao%c&amp;quot;;  printf(s,34); che stampa a video &amp;lt;i&amp;gt;ciao&amp;lt;/i&amp;gt; tra virgolette.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alla fine mi resta circa quello che è già stato postato.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include&amp;lt;stdio.h&amp;gt;&lt;br /&gt;
main(){ char *a=&amp;quot;#include&amp;lt;stdio.h&amp;gt;%cmain(){ char *a=%c%s%c;printf(a,10,34,a,34,10);}%c&amp;quot;;printf(a,10,34,a,34,10);}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Patti</name></author>
	</entry>
	<entry>
		<id>https://so.v2.cs.unibo.it/wiki/index.php?title=Palindroma&amp;diff=33</id>
		<title>Palindroma</title>
		<link rel="alternate" type="text/html" href="https://so.v2.cs.unibo.it/wiki/index.php?title=Palindroma&amp;diff=33"/>
		<updated>2013-10-30T02:52:20Z</updated>

		<summary type="html">&lt;p&gt;Patti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Visto che qui non succede nulla, inizio io:&lt;br /&gt;
&lt;br /&gt;
Ecco una implementazione in python3... chi mi propone altre soluzioni alternative?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/env python3&lt;br /&gt;
&lt;br /&gt;
def palindrome(x):&lt;br /&gt;
  if len(x) &amp;lt; 2: return True&lt;br /&gt;
  else:&lt;br /&gt;
    if x[0] == x[-1]:&lt;br /&gt;
      return palindrome(x[1:-1])&lt;br /&gt;
    else:&lt;br /&gt;
      return False&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
  s=input(&amp;quot;type in a string: &amp;quot;)&lt;br /&gt;
  print(&amp;quot;is {} palindrome? {}&amp;quot;.format(s,&amp;quot;true&amp;quot; if palindrome(s) else &amp;quot;false&amp;quot;))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Domenique ha proposto questa funzione in C:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
int palindroma(char *pnt){&lt;br /&gt;
&lt;br /&gt;
	int dim=strlen(pnt)-1;&lt;br /&gt;
	int l=dim/2;&lt;br /&gt;
	int k;&lt;br /&gt;
&lt;br /&gt;
	for(k=0;k&amp;lt;=l;k++)&lt;br /&gt;
	{ &lt;br /&gt;
		if(pnt[k]!=pnt[dim])&lt;br /&gt;
			return 0;&lt;br /&gt;
		else&lt;br /&gt;
			dim--;	  						&lt;br /&gt;
	}&lt;br /&gt;
        return 1;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
altre proposte?&lt;br /&gt;
Cosa ne dite di questa soluzione?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#ifdef REC&lt;br /&gt;
int palin(char s[], int i, int f){&lt;br /&gt;
	if (s[i]!=s[f])&lt;br /&gt;
		return 0;&lt;br /&gt;
	if (i&amp;gt;=f)&lt;br /&gt;
		return 1;&lt;br /&gt;
	return palin(s, i+1, f-1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int palindroma(char s[]){&lt;br /&gt;
	if (strlen(s)&amp;lt;2)&lt;br /&gt;
		return 1;&lt;br /&gt;
	return palin(s, 0, strlen(s)-1);	&lt;br /&gt;
}&lt;br /&gt;
#else&lt;br /&gt;
int palindroma(char *s) {&lt;br /&gt;
        char *t;&lt;br /&gt;
        for (t=s+(strlen(s)-1); s &amp;lt; t; s++, t--)&lt;br /&gt;
                if (*t != *s) return 0;&lt;br /&gt;
        return 1;&lt;br /&gt;
}&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#ifdef DEBUGMAIN&lt;br /&gt;
int main(int argc, char *argv[])&lt;br /&gt;
{&lt;br /&gt;
        if (argc &amp;lt; 2) return -1;&lt;br /&gt;
        printf(&amp;quot;%s: %se\' una stringa palindroma\n&amp;quot;,argv[1],palindroma(argv[1])?&amp;quot;&amp;quot;:&amp;quot;non &amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
per compilare il main di prova chiamate il compilatore con il comando seguente&lt;br /&gt;
    gcc -DDEBUGMAIN -o pali pali.c&lt;br /&gt;
(ovviamente mutatis mutandis, se il vostro sorgente non si chiama pali come il mio)&lt;br /&gt;
&lt;br /&gt;
Chi ha voglia di fare una soluzione iterativa in Python e ricorsiva in C?&lt;/div&gt;</summary>
		<author><name>Patti</name></author>
	</entry>
	<entry>
		<id>https://so.v2.cs.unibo.it/wiki/index.php?title=Palindroma&amp;diff=32</id>
		<title>Palindroma</title>
		<link rel="alternate" type="text/html" href="https://so.v2.cs.unibo.it/wiki/index.php?title=Palindroma&amp;diff=32"/>
		<updated>2013-10-29T23:46:34Z</updated>

		<summary type="html">&lt;p&gt;Patti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Visto che qui non succede nulla, inizio io:&lt;br /&gt;
&lt;br /&gt;
Ecco una implementazione in python3... chi mi propone altre soluzioni alternative?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/env python3&lt;br /&gt;
&lt;br /&gt;
def palindrome(x):&lt;br /&gt;
  if len(x) &amp;lt; 2: return True&lt;br /&gt;
  else:&lt;br /&gt;
    if x[0] == x[-1]:&lt;br /&gt;
      return palindrome(x[1:-1])&lt;br /&gt;
    else:&lt;br /&gt;
      return False&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
  s=input(&amp;quot;type in a string: &amp;quot;)&lt;br /&gt;
  print(&amp;quot;is {} palindrome? {}&amp;quot;.format(s,&amp;quot;true&amp;quot; if palindrome(s) else &amp;quot;false&amp;quot;))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Domenique ha proposto questa funzione in C:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
int palindroma(char *pnt){&lt;br /&gt;
&lt;br /&gt;
	int dim=strlen(pnt)-1;&lt;br /&gt;
	int l=dim/2;&lt;br /&gt;
	int k;&lt;br /&gt;
&lt;br /&gt;
	for(k=0;k&amp;lt;=l;k++)&lt;br /&gt;
	{ &lt;br /&gt;
		if(pnt[k]!=pnt[dim])&lt;br /&gt;
			return 0;&lt;br /&gt;
		else&lt;br /&gt;
			dim--;	  						&lt;br /&gt;
	}&lt;br /&gt;
        return 1;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
altre proposte?&lt;br /&gt;
Cosa ne dite di questa soluzione?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int palindroma(char *s) {&lt;br /&gt;
        char *t;&lt;br /&gt;
        for (t=s+(strlen(s)-1); s &amp;lt; t; s++, t--)&lt;br /&gt;
                if (*t != *s) return 0;&lt;br /&gt;
        return 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#ifdef DEBUGMAIN&lt;br /&gt;
int main(int argc, char *argv[])&lt;br /&gt;
{&lt;br /&gt;
        if (argc &amp;lt; 2) return -1;&lt;br /&gt;
        printf(&amp;quot;%s: %se\' una stringa palindroma\n&amp;quot;,argv[1],palindroma(argv[1])?&amp;quot;&amp;quot;:&amp;quot;non &amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
per compilare il main di prova chiamate il compilatore con il comando seguente&lt;br /&gt;
    gcc -DDEBUGMAIN -o pali pali.c&lt;br /&gt;
(ovviamente mutatis mutandis, se il vostro sorgente non si chiama pali come il mio)&lt;br /&gt;
&lt;br /&gt;
Chi ha voglia di fare una soluzione iterativa in Python e ricorsiva in C?&lt;/div&gt;</summary>
		<author><name>Patti</name></author>
	</entry>
	<entry>
		<id>https://so.v2.cs.unibo.it/wiki/index.php?title=Tentativo&amp;diff=15</id>
		<title>Tentativo</title>
		<link rel="alternate" type="text/html" href="https://so.v2.cs.unibo.it/wiki/index.php?title=Tentativo&amp;diff=15"/>
		<updated>2013-10-26T02:23:24Z</updated>

		<summary type="html">&lt;p&gt;Patti: Created page with &amp;quot;&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt; /* funziona solo se il nome del programma e' quello in fopen */ #include &amp;lt;stdio.h&amp;gt; int main(void){ 	char c; 	FILE *f; 	if (f=fopen(&amp;quot;questo.c&amp;quot;, ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/* funziona solo se il nome del programma e' quello in fopen */&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
int main(void){&lt;br /&gt;
	char c;&lt;br /&gt;
	FILE *f;&lt;br /&gt;
	if (f=fopen(&amp;quot;questo.c&amp;quot;, &amp;quot;r&amp;quot;)){&lt;br /&gt;
		while ((c=getc(f))!=EOF)&lt;br /&gt;
			printf(&amp;quot;%c&amp;quot;, c);&lt;br /&gt;
		fclose(f);&lt;br /&gt;
	}&lt;br /&gt;
	return  0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Patti</name></author>
	</entry>
	<entry>
		<id>https://so.v2.cs.unibo.it/wiki/index.php?title=Esercizi_a_caso_del_Prof.&amp;diff=14</id>
		<title>Esercizi a caso del Prof.</title>
		<link rel="alternate" type="text/html" href="https://so.v2.cs.unibo.it/wiki/index.php?title=Esercizi_a_caso_del_Prof.&amp;diff=14"/>
		<updated>2013-10-26T02:17:37Z</updated>

		<summary type="html">&lt;p&gt;Patti: /* Il programma che stampa se stesso */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cominciamo da una sfida:&lt;br /&gt;
&lt;br /&gt;
=== Il programma che stampa se stesso ===&lt;br /&gt;
scrivere un programma che produca in output se stesso: i.e. non prevede input e l'output deve essere identico al sorgente.&lt;br /&gt;
&lt;br /&gt;
Vince chi produce il programma piu' compatto (in ogni linguaggio).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[tentativo]]&lt;br /&gt;
&lt;br /&gt;
=== Programmi semplici ===&lt;br /&gt;
&lt;br /&gt;
riscrivere le funzioni strcpy, strcmp, strncmp etc... (quelle elencate da &amp;quot;man 3 string&amp;quot;) in C e in Python.&lt;br /&gt;
&lt;br /&gt;
scrivere una funzione che controlli se una stringa e' palindroma (C python)&lt;br /&gt;
&lt;br /&gt;
=== Una miniera di esercizi ===&lt;br /&gt;
&lt;br /&gt;
[http://rosettacode.org/wiki/Category:Programming_Tasks Rosetta Stone]. Tantissimi problemi risolti con tantissimi linguaggi.&lt;/div&gt;</summary>
		<author><name>Patti</name></author>
	</entry>
</feed>