simov

SP Lab. 4

Nov 12th, 2013
1,135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.04 KB | None | 0 0
  1. 1. Ребреста низа
  2. Една еднодимензионална низа се нарекува ребреста, ако секој елемент кој има претходник и следбеник е или строго поголем од двата (и од преходникот и од следбеникот) или е строго помал од двата. За внесена еднодимензионална низа, со должина n(2<n<100) да се утврди дали таа е ребреста или не е.
  3.  
  4. Sample input:
  5. 7
  6. 1 9 4 11 -3 22 5
  7. Sample output:
  8. DA
  9.  
  10. --------------------------------------------------
  11. #include <stdio.h>
  12. #include <stdlib.h>
  13.  
  14. int main()
  15. {
  16. int n[100];
  17. int lenght;
  18. scanf ("%d",&lenght);
  19. int i;
  20. for ( i=0;i<lenght;i++)
  21. {
  22. int k;
  23. scanf ("%d",&k);
  24. n[i]=k;
  25. }
  26. int kraj=1;
  27. for (i=1;i<lenght-1;i++)
  28. {
  29. if ((n[i]>=n[i-1]&&n[i]<=n[i+1]) || (n[i]<=n[i-1] && n[i]>=n[i+1]))
  30. {
  31. kraj=0;
  32. break;
  33. }
  34. }
  35. if (kraj)
  36. {
  37. printf ("YES");
  38. }else
  39. {
  40. printf ("NO");
  41. }
  42. }
  43. --------------------------------------------------
  44.  
  45. 2. Циклично поместување
  46. Да се напише програма која извршува циклично поместување на елементите на дадена низа А од N (N < 100) цели броеви, за K-места во лево и во десно. Броевите од низата, нивниот број N и бројот на поместувања се читаат од СВ. Забелешка: Ако бројот K е позитивен поместувањето се извршува во десно, а ако е негативен во лево.
  47.  
  48. Sample input:
  49. 10
  50. 0 1 2 3 4 5 6 7 8 9
  51. 7
  52. Sample output:
  53. 3 4 5 6 7 8 9 0 1 2
  54.  
  55. --------------------------------------------------
  56. #include <stdio.h>
  57. #include <stdlib.h>
  58.  
  59. int main()
  60. {
  61. int n[100];
  62. int lenght;
  63. scanf ("%d",&lenght);
  64. int i;
  65. for ( i=0;i<lenght;i++)
  66. {
  67. int k;
  68. scanf ("%d",&k);
  69. n[i]=k;
  70. }
  71. int cycle;
  72. scanf ("%d",&cycle);
  73.  
  74. for (i=0;i<lenght;i++)
  75. {
  76. if (cycle>0)
  77. {
  78. int k=i;
  79. int l=0;
  80. int c=i+cycle;
  81. int pp=0;
  82. while(c%lenght==0&&l<lenght)
  83. {
  84. pp=1;
  85. int r=n[k];
  86. printf ("%d ",r);
  87. l++;
  88. k++;
  89. if (k>=lenght)
  90. {
  91. k=0;
  92. }
  93.  
  94. }
  95. if (pp)break;
  96. }else if (cycle<0)
  97. {
  98. int k=i;
  99. int l=0;
  100. int c=i+cycle;
  101. c*=-1;
  102. int pp=0;
  103. while(c%lenght==0 && l<lenght)
  104. {
  105. int r=n[k];
  106. printf ("%d ",r);
  107. l++;
  108. k++;
  109. if (k>=lenght)
  110. {
  111. k=0;
  112. }
  113. pp=1;
  114. }
  115. if (pp)break;
  116.  
  117. }else
  118. {
  119. int k;
  120. for (k=0;k<lenght;k++)
  121. {
  122. int r=n[k];
  123. printf ("%d ",r);
  124.  
  125. }
  126. break;
  127. }
  128. }
  129. return 0;
  130. }
  131. --------------------------------------------------
  132.  
  133. 3. Генерирање низа
  134. Да се напише програма која од два дадени реални броеви генерира низа од N (N < 100) реални броеви. Првите елементи на низата се двата дадени броеви, а останатите елементи од низата се добиваат како половина од збирот на сите претходни елементи од низата. Бројот на елементи од низата и двата почетни елементи се читаат од СВ.
  135.  
  136. Sample input:
  137. 10
  138. 1 2
  139. Sample output:
  140. 1.00 2.00 1.50 2.25 3.38 5.06 7.59 11.39 17.09 25.63
  141.  
  142. --------------------------------------------------
  143. #include <stdio.h>
  144. #include <stdlib.h>
  145.  
  146. int main()
  147. {
  148. float n[100];
  149. int lenght;
  150. scanf ("%d",&lenght);
  151. float num1,num2;
  152. scanf ("%f%f",&num1,&num2);
  153. int i;
  154. n[0]=num1;
  155. n[1]=num2;
  156. printf ("%.2f ",num1);
  157. printf ("%.2f ",num2);
  158. float sum=num1+num2;
  159. for (i=2;i<lenght;i++)
  160. {
  161. float k;
  162. k=sum/2;
  163. n[i]=sum/2;
  164. sum+=n[i];
  165. printf ("%.2f ",k);
  166.  
  167. }
  168.  
  169. }
  170. --------------------------------------------------
  171.  
  172. 4. Квадрат на матрица
  173. За дадена квадратна матрица со димензија n (зададена на стандарден влез) да се креира матрица која е квадрат на дадената матрица (А*А). Истата да се отпечати на стандарден излез.
  174.  
  175. Sample input:
  176. 3
  177. 1 2 3
  178. 4 5 6
  179. 7 8 9
  180. Sample output:
  181. 30 36 42
  182. 66 81 96
  183. 102 126 150
  184.  
  185. --------------------------------------------------
  186. #include <stdio.h>
  187. #include <stdlib.h>
  188.  
  189. int main()
  190. {
  191. int i,j;
  192. int k;
  193. int matrica[100][100];
  194. int lenght;
  195. scanf ("%d",&lenght);
  196.  
  197. for (i=0;i<lenght;i++)
  198. {
  199. for (j=0;j<lenght;j++)
  200. {
  201. int r;
  202. scanf ("%d",&r);
  203. matrica[i][j]=r;
  204. }
  205. }
  206.  
  207. for (i=0;i<lenght;i++)
  208. {
  209. for (j=0;j<lenght;j++)
  210. {
  211. int sum=0;
  212. for (k=0;k<lenght;k++)
  213. sum+=matrica[i][k]*matrica[k][j];
  214. printf ("%d ",sum);
  215. }
  216. printf ("\n");
  217.  
  218. }
  219. return 0;
  220. }
  221. --------------------------------------------------
  222.  
  223. 5. Рамка+
  224. Со помош на знаците ‘+’ и ‘-‘ да се генерира матрица од знаци со димензии m и n (2<m,n<20) која претставува правоаголник од знаците -, впишан во правоаголник од знаците + (види примери). За внесени m и n да се испечати на екран генерираната матрица (без празни места помеѓу елементите).
  225.  
  226. Sample input:
  227. 5 6
  228. Sample output:
  229. ++++++
  230. +----+
  231. +----+
  232. +----+
  233. ++++++
  234.  
  235. --------------------------------------------------
  236. #include <stdio.h>
  237. #include <stdlib.h>
  238.  
  239. int main()
  240. {
  241. int m,n;
  242. scanf ("%d%d",&n,&m);
  243. int i,j;
  244. for (i=0;i<n;i++)
  245. {
  246. for (j=0;j<m;j++)
  247. {
  248. if (i==0 || i==n-1)
  249. {
  250. printf ("+");
  251. continue;
  252. }
  253. if (j==0 || j==m-1)
  254. {
  255. printf ("+");
  256. continue;
  257. }
  258. printf ("-");
  259. }
  260. printf ("\n");
  261. }
  262.  
  263. }
  264. --------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment