Skip to content

Commit 3fc8c32

Browse files
committed
восстановленный мастер
1 parent 57b27e5 commit 3fc8c32

File tree

2 files changed

+290
-0
lines changed

2 files changed

+290
-0
lines changed

lesson02/2L_RaskinSergey_.swift

Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
//
2+
// main.swift
3+
// 2l_RaskinSergey
4+
//
5+
// Created by raskin-sa on 17/11/2019.
6+
// Copyright © 2019 raskin-sa. All rights reserved.
7+
//
8+
9+
import Foundation
10+
//функция определяет число четное или нет
11+
func IsEven(in_digit:Int)->Bool
12+
{
13+
if in_digit%2 == 0{
14+
return true
15+
}
16+
else{
17+
return false
18+
}
19+
}
20+
21+
//функция определяет число делится на три или нет
22+
func IsDividedByThree (in_digit:Int)->Bool{
23+
if in_digit%3 == 0{
24+
return true
25+
}
26+
else{
27+
return false
28+
}
29+
}
30+
31+
//функция добавляет число Фибоначчи в массив на входе
32+
func add_fib(input_array:[Double])->[Double]
33+
{
34+
var fib_1: Double
35+
var fib_2: Double
36+
var fib_sum: Double
37+
let fib_max_index:Int = input_array.count
38+
var new_array : [Double] = input_array
39+
40+
fib_1 = input_array[fib_max_index-1]
41+
fib_2 = input_array[fib_max_index-2]
42+
//print("fib_1= " + String(fib_1)+" fib_2= " + String(fib_2))
43+
fib_sum = fib_1 + fib_2
44+
new_array.append(fib_sum)
45+
46+
return new_array
47+
}
48+
49+
///
50+
///ТЕЛО ПРОГРАММЫ
51+
///
52+
////
53+
54+
print("Создаем массив от 1 до 100 с удаленными четными числами и числами, не делящимися на 3")
55+
//создаем массив из 100 чисел
56+
var workarray = [Int]()
57+
var i:Int
58+
var maxIndex:Int = 99
59+
var initial_set100:Set<Int>=[0] //для будущего массива простых чисел
60+
61+
for i in (1...100){
62+
workarray.append(i)
63+
initial_set100.insert(i)//пригодится в задаче для массива простых чисел
64+
}
65+
66+
//удаляем четные числа
67+
for i in (0...99){
68+
if i>maxIndex {
69+
break
70+
}
71+
if IsEven(in_digit: workarray[i]) {
72+
workarray.remove(at:i)
73+
maxIndex -= 1
74+
}
75+
}
76+
77+
//удаляем числа, не делящиеся на 3
78+
i = 0
79+
maxIndex = workarray.count - 1
80+
81+
while i < maxIndex
82+
{
83+
if !(IsDividedByThree(in_digit: workarray[i])){
84+
// print("Удаляем элемент с №: " + String(i) + " его значение = " + String(workarray[i]))
85+
workarray.remove(at:i)
86+
maxIndex -= 1
87+
}else{
88+
i += 1
89+
}
90+
}
91+
92+
print(workarray)// это массив от 1 до 100 с удаленными четными числами и числами, не делящимися на 3
93+
94+
95+
//создаем новый пустой массив Double для 100 чисел Фибоначчи
96+
//в Int - не помещается
97+
var curr_array = [Double]()
98+
var prev_array :[Double] = [1,2]
99+
100+
print("добавляем 100 чисел Фибоначчи")
101+
102+
for _ in (1...100){
103+
curr_array = add_fib(input_array:prev_array)
104+
prev_array = curr_array
105+
}
106+
print(curr_array)
107+
108+
//Задача сформировать массив простых чисел
109+
print("Создаем массив простых чисел")
110+
111+
//print(initial_set100.count)//в это множество ранее закачали числа от 1 до 100
112+
var set_to_remove:Set<Int>=[0] //в это множество закачиваем "не простые" числа, которые потом вычеркнем
113+
var i_step:Int=2
114+
115+
i = 0
116+
117+
for i in (2...100){
118+
if initial_set100.contains(i)// в это множество ранее мы закачали числа от 1 до 100
119+
{
120+
for i_step in stride(from: i, to: 101, by: i)//удаляем цифры последовательно с шагом 2,3,4... после вычитания множеста set_to_remove в исхоном множестве останутся только простые числа
121+
{
122+
if i_step != i { //что-бы само простое число не удалить
123+
set_to_remove.insert(i_step)
124+
}
125+
}//for
126+
initial_set100 = initial_set100.subtracting(set_to_remove)
127+
}//if initial_set100.contains(i)
128+
129+
// print("i= " + String(i))
130+
// print(initial_set100)
131+
}
132+
//print("Результирующее множество простых чисел от 1 до 100")
133+
//print(initial_set100)
134+
135+
//копируем в массив
136+
curr_array.removeAll() //обнуляем то, что раньше в нем было
137+
for i in (0...100)
138+
{
139+
if initial_set100.contains(i)
140+
{
141+
curr_array.append(Double(i))
142+
}
143+
}
144+
print("Результирующий массив простых чисел от 1 до 100")
145+
print(curr_array)
Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
//
2+
// main.swift
3+
// 2l_RaskinSergey
4+
//
5+
// Created by raskin-sa on 17/11/2019.
6+
// Copyright © 2019 raskin-sa. All rights reserved.
7+
//
8+
9+
import Foundation
10+
//функция определяет число четное или нет
11+
func IsEven(in_digit:Int)->Bool
12+
{
13+
if in_digit%2 == 0{
14+
return true
15+
}
16+
else{
17+
return false
18+
}
19+
}
20+
21+
//функция определяет число делится на три или нет
22+
func IsDividedByThree (in_digit:Int)->Bool{
23+
if in_digit%3 == 0{
24+
return true
25+
}
26+
else{
27+
return false
28+
}
29+
}
30+
31+
//функция добавляет число Фибоначчи в массив на входе
32+
func add_fib(input_array:[Double])->[Double]
33+
{
34+
var fib_1: Double
35+
var fib_2: Double
36+
var fib_sum: Double
37+
let fib_max_index:Int = input_array.count
38+
var new_array : [Double] = input_array
39+
40+
fib_1 = input_array[fib_max_index-1]
41+
fib_2 = input_array[fib_max_index-2]
42+
//print("fib_1= " + String(fib_1)+" fib_2= " + String(fib_2))
43+
fib_sum = fib_1 + fib_2
44+
new_array.append(fib_sum)
45+
46+
return new_array
47+
}
48+
49+
///
50+
///ТЕЛО ПРОГРАММЫ
51+
///
52+
////
53+
54+
print("Создаем массив от 1 до 100 с удаленными четными числами и числами, не делящимися на 3")
55+
//создаем массив из 100 чисел
56+
var workarray = [Int]()
57+
var i:Int
58+
var maxIndex:Int = 99
59+
var initial_set100:Set<Int>=[0] //для будущего массива простых чисел
60+
61+
for i in (1...100){
62+
workarray.append(i)
63+
initial_set100.insert(i)//пригодится в задаче для массива простых чисел
64+
}
65+
66+
//удаляем четные числа
67+
for i in (0...99){
68+
if i>maxIndex {
69+
break
70+
}
71+
if IsEven(in_digit: workarray[i]) {
72+
workarray.remove(at:i)
73+
maxIndex -= 1
74+
}
75+
}
76+
77+
//удаляем числа, не делящиеся на 3
78+
i = 0
79+
maxIndex = workarray.count - 1
80+
81+
while i < maxIndex
82+
{
83+
if !(IsDividedByThree(in_digit: workarray[i])){
84+
// print("Удаляем элемент с №: " + String(i) + " его значение = " + String(workarray[i]))
85+
workarray.remove(at:i)
86+
maxIndex -= 1
87+
}else{
88+
i += 1
89+
}
90+
}
91+
92+
print(workarray)// это массив от 1 до 100 с удаленными четными числами и числами, не делящимися на 3
93+
94+
95+
//создаем новый пустой массив Double для 100 чисел Фибоначчи
96+
//в Int - не помещается
97+
var curr_array = [Double]()
98+
var prev_array :[Double] = [1,2]
99+
100+
print("добавляем 100 чисел Фибоначчи")
101+
102+
for _ in (1...100){
103+
curr_array = add_fib(input_array:prev_array)
104+
prev_array = curr_array
105+
}
106+
print(curr_array)
107+
108+
//Задача сформировать массив простых чисел
109+
print("Создаем массив простых чисел")
110+
111+
//print(initial_set100.count)//в это множество ранее закачали числа от 1 до 100
112+
var set_to_remove:Set<Int>=[0] //в это множество закачиваем "не простые" числа, которые потом вычеркнем
113+
var i_step:Int=2
114+
115+
i = 0
116+
117+
for i in (2...100){
118+
if initial_set100.contains(i)// в это множество ранее мы закачали числа от 1 до 100
119+
{
120+
for i_step in stride(from: i, to: 101, by: i)//удаляем цифры последовательно с шагом 2,3,4... после вычитания множеста set_to_remove в исхоном множестве останутся только простые числа
121+
{
122+
if i_step != i { //что-бы само простое число не удалить
123+
set_to_remove.insert(i_step)
124+
}
125+
}//for
126+
initial_set100 = initial_set100.subtracting(set_to_remove)
127+
}//if initial_set100.contains(i)
128+
129+
// print("i= " + String(i))
130+
// print(initial_set100)
131+
}
132+
//print("Результирующее множество простых чисел от 1 до 100")
133+
//print(initial_set100)
134+
135+
//копируем в массив
136+
curr_array.removeAll() //обнуляем то, что раньше в нем было
137+
for i in (0...100)
138+
{
139+
if initial_set100.contains(i)
140+
{
141+
curr_array.append(Double(i))
142+
}
143+
}
144+
print("Результирующий массив простых чисел от 1 до 100")
145+
print(curr_array)

0 commit comments

Comments
 (0)