Министерство образования и науки Российской Федерации
Филиал федерального государственного бюджетного образовательного учреждения высшего профессионального образования
"Национальный исследовательский университет "МЭИ"
в г. Смоленске
Кафедра вычислительной техники
Лабораторная работа №1
по курсу: «Технология программирования»
Группа: ВМ-09
Студент: Полячков.А.А.
Преподаватель: Панкратова Е.А.
Федулов Я.А
Вариант: 18
Смоленск 2012 г.
Оценка характеристик программ на основе лексического анализа Задача :
1)Напишите программу расчета по двум формулам.
2) В одномерном массиве, состоящем из п вещественных элементов, вычислить:
-
количество элементов массива, меньших С;
-
сумму целых частей элементов массива, расположенных после последнего отрицательного элемента.
Преобразовать массив таким образом, чтобы сначала располагались все элементы, отличающиеся от максимального не более чем на 20%, а потом — все остальные.
Определить значения метрик Холстеда, на основе которых дать оценку качества разработанного исходного текста программы.
Реализация программы
Текст программы для реализации возможного решения поставленной задачи, разработанной с использованием языка программирования С#, приведен в таблице 1:
Таблица 1 Текст программы
Номер строки |
Строки программы |
1 |
using System; |
2 |
using System.Collections.Generic; |
3 |
using System.Text; |
4 |
namespace vjz |
5 |
{ |
6 |
class Program |
7 |
{ |
8 |
static void Main(string[] args) |
9 |
{ |
10 |
int max,I,gg; |
11 |
int kol=0,j=0; |
12 |
int[] q,z; |
13 |
int a = Int32.Parse(Console.ReadLine()); |
14 |
double z1, z2; |
15 |
//Console.read(a) |
16 |
//z1 = (a + 2) / (Math.Sqrt(2 * a)); |
17 |
z1 = ((a + 2) / (Math.Sqrt(2 * a)) - a / (Math.Sqrt(2 * a) + 2) + 2 / (a - Math.Sqrt(2 * a))) * (Math.Sqrt(a) - Math.Sqrt(2)) / (a + 2); |
18 |
z2 = 1 / (Math.Sqrt(a) + Math.Sqrt(2 )); |
19 |
Console.WriteLine(z1); |
20 |
Console.WriteLine(z2); |
21 |
Console.WriteLine("введите размер массива"); |
22 |
int n = Int32.Parse(Console.ReadLine()); |
23 |
Console.WriteLine("введите С"); |
24 |
int c = Int32.Parse(Console.ReadLine()); |
25 |
q = new int[n]; |
26 |
z = new int[n]; |
27 |
Random b = new Random(); |
28 |
for ( i = 0; i < n; ++i) |
29 |
{ |
30 |
q[i] = b.Next(100)-50; |
31 |
Console.WriteLine(Convert.ToString(q[i])); |
32 |
} |
33 |
max = q[0]; |
34 |
for ( i = 0; i < n; ++i) |
35 |
{ |
36 |
if (q[i]>max) |
37 |
max = q[i]; |
38 |
if (q[i] < c) |
39 |
kol++; |
40 |
} |
41 |
Console.WriteLine("меньше С"); |
42 |
Console.WriteLine(kol); |
43 |
kol = 0; |
44 |
for ( i = n-1; i>-1; --i) |
45 |
{ |
46 |
if (q[i] <0 ) |
47 |
break; |
48 |
kol=kol+q[i]; |
49 |
} |
50 |
Console.WriteLine("max"); |
51 |
Console.WriteLine(max); |
52 |
for ( i = 0; i < n; ++i) |
53 |
if ((q[i] > 0.8 * max) && (q[i] < 1.2 * max)) |
54 |
{ |
55 |
z[j]=q[i]; |
56 |
j++; |
57 |
q[i] = 999; |
58 |
} |
59 |
for ( i = 0; i < n; ++i) |
60 |
if (q[i]!=999) |
61 |
{ |
62 |
z[j] = q[i]; |
63 |
j++; |
64 |
} |
65 |
Console.WriteLine("новый массив"); |
66 |
for ( j = 0; j < n; ++j) |
67 |
Console.WriteLine(Convert.ToString(z[j])); |
68 |
Console.WriteLine("сумма"); |
69 |
Console.WriteLine(kol); |
70 |
gg = Int32.Parse(Console.ReadLine()); |
71 |
} |
72 |
} |
73 |
} |
74 |
|
75 |
|
76 |
|
77 |
|